我出道题:
class Person{
static $age = 33;
}
class Student extends Person{
public function __construct()
{
self::$age = 20;
}
public function getAge(){
return self::$age;
}
}
$student = new Student();
echo Person::$age;
echo $student->getAge();
正确答案为:
20
20
和你们的结果一样吗?
我想有些人的结果可能不是这样…
这里我来解释一下
父类和子类,都是共享这一个静态属性。所以当子类或者父类修改这个静态属性的值,在父类或子类中输出的都是修改后的值。
我不想共享,如何可以各用各的呢?
答:在子类中定义同名静态属性。