設計知識點
類與對象->后期靜態綁定
出現的問題
A 類為父類
里面有一個方法為調用當前類的 $name 屬性
當 B 類繼承了 A類時
但是輸出仍然是 A (父類) 的 屬性?
<?php
class A
{
private static $name = "A類";
public static function test()
{
echo self::$name;
}
}
class B extends A
{
private static $name = "B類";
}
B::test();
解決辦法
官方講解
static代表的是調用的那個類。而self代表的是方法所在的類
<?php
class A
{
private static $name = "A類";
public static function test()
{
echo static::$name;
}
}
class B extends A
{
protected static $name = "B類";
}
B::test();