我有一個基類,我需要調用子類中引用的類的函數。從父類訪問子類靜態變量?
很容易的,
class base_class {
public function doSomethingWithReference(){
$this->reference->doSomething();
}
}
class extended_class extends base_class{
protected $reference;
public function __construct($ref){
$this->reference = $ref;
}
}
現在這個工作顯然很好,
但是,當我調試,我不關心$this->reference
值只是,對象$this->reference
指的是巨大的!
所以,當我做print_r($instanceOfExtendedClass)
我打印出來的對象。
現在,每個延伸base_class
的類的參考都不相同。
我想要做的就是將reference
設置爲extended_class
類的靜態屬性。
但是,然後更改doSomethingWithReference
爲self::$reference
將引發未定義的變量錯誤。
反過來,在base_class
中設置靜態變量並將其從extended_class
修改爲靜態變量不起作用,因爲它會更改從該類延伸的所有內容的變量。
有沒有辦法做到這一點,所以我沒有打印出$this->reference
?
你正在使用哪個PHP版本?在[5.3]中有一些[* static]行爲的巨大變化](http://php.net/language.oop5.late-static-bindings),並且知道你是否被卡在老的東西上會給你一個非常不同的答案。 – Charles
PHP版本5.3 – Hailwood
此類結構違反了某些內容,我只是不確定它是什麼:) –