我在php中遇到静态成员和继承问题
为什么这样做:
class A {
public static function me() {
echo static::$b;
}
}
class B extends A
{
protected static $b = "hello";
}
B::me();
而这不是????:
class A {
public static function me() {
echo static::$b;
}
}
class B extends A
{
private static $b = "hello";
}
B::me();
我知道我指的是A上下文中的变量$b但为什么我可以访问受保护的成员,而不能访问私人成员?非常感谢。
看。private
仅用于类本身,而protected
用于族。难怪$b在A中是不可访问的,如果你为b声明private
,无论b从A继承。另一方面,如果你声明protected
,A也可以访问它,因为它属于b的族。