我可以发誓,在标准 OOP 中,您可以从基类中的方法访问具体类的私有成员。PHP 只是以不同的方式实现这一点,还是我做错了什么,或者我的理解完全错误?
<?php
class Base {
public function __toString() {
return $this->name;
}
}
class Concrete extends Base {
private $name;
public function __construct($name) {
$this->name = $name;
}
}
$o = new Concrete('foobar');
echo $o;
上面的代码片段抛出Fatal error: Cannot access private property Concrete::$name on line 5
. 如果我将访问级别更改为$name
to ,它会起作用protected
。