下面的代碼段:是否有可能獲得父呼叫子對象?
class a{
public function __get($key) {
if($key == 'obj') {
if($b->obj == null) { //PSEUDO this is what I intend to do :)
$obj = new Obj();
$b->obj = $obj
}
return $obj;
}
}
}
class b extends a{
private $obj = null;
public function __get($key) {
return parent::__get($key);
}
}
這樣的想法是創造需求的對象。但我不知道是否可以檢測調用parent :: _ get方法的對象的類。一些像孩子這樣的操作員就是我在尋找的東西我猜:)。
什麼是可能的,但多餘的是,比如我有一個名爲國家一個對象,所以我在其中有一個國家目標和其他類地點與也有一個Country對象我的類用戶自定義。這兩個類都擴展了class a。我可以通過將a類中的if塊寫入每個子類來解決問題。但那是我不想做的。因此,能夠在類中檢查一個名爲__get函數的類並將所需的Country對象直接設置到子類中會更容易。我希望我的問題變得清晰,這不是太奇怪,呵呵。儘管我對任何其他解決方案都是開放的......謝謝。
沒錯,這就是不知我的解決方案,這裏的問題是,這個$ - > _ OBJ ==因爲類沒有一個叫_obj成員空總是正確的。這基本上就是你不得不問孩子課你有這個對象了。這樣,每次我想訪問一個成員時,它都會繼續創建對象。 – samy 2012-01-13 11:32:20
好 - 沒有。查看輸出 - 對象創建一次,第二次僅獲取對象。 – bububaba 2012-01-13 11:37:23
好吧,謝謝,問題是,我的成員私人所以母親不能更新他們:)謝謝! – samy 2012-01-13 17:48:45