-3
class A
{
private $a;
}
class B extends A
{
function __construct()
{
(new \ReflectionClass($this))->getProperty('a')->setAccessible(true);
unset($this->a); // fatal error
}
}
(new B());
這會觸發一個致命的錯誤,雖然我確實改變了無障礙我不能取消設置繼承的私有變量;即使反射
而不是'繼承'這個類,而是通過使用這個類來注入它,然後使用它想要的那部分來構造你的類。維護起來要容易得多。特別是如果你使用'interfaces'。 –