這是一個討論主題,而不是「幫助我」的問題。如果不通過引用傳遞變量,如何覆蓋變量?
我剛剛遇到一個奇怪的問題。變量(對象)在未傳遞到任何地方時被覆蓋。
示例;
var_dump($node->title);
$entity = $server->pull($item);
var_dump($node->title);
兩個var_dumps顯示兩個不同的值。
$ item是不相關的字符串。
在這一點上,我不認爲'拉()'方法的內容是相關的 - 我不是很好奇在哪裏被覆蓋,我很好奇它被覆蓋。
PHP如何改變變量,除非已經傳遞給方法?
我的函數中沒有引用,節點是直接傳遞的;
function my_function($node) {
即使我讓我的對象 的克隆即使我重新命名了var
$my_node = $node;
克隆的對象是仍然覆蓋。 重命名的對象是仍然覆蓋(即,它不涉及名稱。)
我很想知道這是可能的。 pull()(或相關的方法)如何超過一個他們還沒有給出的變量?
我需要重申;我不在乎其中的價值正在改變,我關心它是如何改變,當它沒有傳遞給方法。
稀釋是,我的錯誤,並感謝在清除了(我更新了我的問題,以反映這一點。)但是這仍然沒有解釋它是如何被覆蓋。 – Christian