![](/img/trans.png)
[英]Define class variable in PHP that is not stored along with the object instance
[英]Setting variable to an instance of an object in 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
設置$Object
與$v
相同的實例。它只是保留原始的空對象。
您試圖在函數內部更改參數$Object
的值,並希望該更改在函數完成后可見。
PHP默認通過值傳遞參數,因此您要么需要
function RetrieveFromMemory($Id, &$Object)
您返回的是true
,不是$v
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.