【发布时间】:2013-11-17 20:20:09
【问题描述】:
这对我来说没有意义:
class A {
public static $value = "a";
public static function get_value(){
return self::$value;
}
}
echo A::$value; // a, this makes sense
echo A::get_value(); // a, this makes sense
class B extends A {
public static $value = "b";
}
echo B::$value; // b, this makes sense
echo B::get_value(); // a? :(
为什么self 指针不能按预期工作,类似于this?是否有其他关键字可用于完成此操作?
如果我将静态函数添加到 B 类,它现在可以按预期工作。
class B extends A {
public static $value = "b";
public static function get_value(){
return self::$value;
}
}
echo B::get_value(); // b :)
如果方法包含多于 1 行,则复制+粘贴此功能并在 2 个位置进行管理是没有意义的...
【问题讨论】:
-
尝试使用
static::关键字而不是self:: -
我刚才问过这个same question。也许您可以使用其中的一些回复。
标签: php static-methods