簡體   English   中英

將變量設置為php中對象的實例

[英]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默認通過值傳遞參數,因此您要么需要

  1. 更改函數以返回找到的值,並更改其調用方式; 要么
  2. 告訴PHP通過引用傳遞參數: function RetrieveFromMemory($Id, &$Object)

您返回的是true ,不是$v

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM