好變量設置爲一個對象的實例,我撕我的頭髮在這裏...在PHP
我清楚的很簡單的東西。我試圖阻止數據庫命中,所以我正在使用一個簡單的函數來檢查是否有已經在內存中的對象的實例,如果是,則返回該實例,如果沒有,則從數據庫。
private function RetrieveFromMemory($Id, $Object)
{
$mymap=$this->ColumnMap;
$key = $this->Key;
foreach($this->InMemory as $v) {
if($v->$key == $Id) {
/*
foreach (get_object_vars($v) as $key => $value) {
$Object->$key = $value;
}
*/
$Object = $v;
trace('Retrieved '.get_class($v).' from memory');
return true;
}
}
return false;
}
如果我取消註釋foreach,我可以填寫屬性,但它是一個新的實例。我想要相同的事件的實例,但使用$Object = $v;
不會將$Object
設置爲與$v
相同的實例...它只是留下原始的空對象。
想通了這一點後,我問...以供將來參考http://php.net/manual/en/language.oop5.references.php# 95522是一個很好的指導,雖然它並沒有顯示出一個令人遺憾的例子 – ChaosAffe