2012-11-14 104 views
0

我在網站網站的新開發中遇到了一個非常奇怪的情況。我已經做了一個塊(使用自定義模塊),我做了一個node_load。這裏一切正常,節點加載,塊顯示。但是,如果我改變nid節點(通過例子設置null)並且什麼也不做(沒有node_save,沒有函數調用,沒有這個對象),我有一些不同模塊的注意事項(比如3或4個模塊)。我知道這只是注意到,但我會明白爲什麼改變變量的簡單事實至極從未使用,引發一些錯誤.....例:Drupal 7:節點加載後更改nid

$tmp = node_load(arg(1)); 
$tmp->nid=null; 

=>錯誤(很多「試圖獲取屬性「在不同勢名功能)

$tmp = node_load(arg(1)); 
$node=$tmp; 
$node->nid=null; 

=>錯誤(大量的‘非對象......在不同勢函數名試圖讓非對象的財產......’)

$tmp = node_load(arg(1)); 
$node = new stdClass(); 
//Copy via une boucle sinon on a des erreurs. 
foreach ($tmp as $key => $value) { 
    if ($key != 'nid') $node->{$key} = $value; 
} 

=>一切正常

+0

什麼是跟隨你所示的代碼?爲什麼你要爲臨時變量設置節點ID爲NULL? – kiamlaluno

回答

0

確定最後它引用的對象comportement PHP,我們必須在對象上applicate方法Clone php作出的副本,或者對象將是refeerences