这更像是一个讨论主题,而不是“帮助我”的问题。
我刚刚遇到一个奇怪的问题。当未在任何地方传递时,变量(对象)将被覆盖。
例子;
var_dump($node->title);
$entity = $server->pull($item);
var_dump($node->title);
两个 var_dump 显示两个不同的值。
$item 是一个不相关的字符串。
在这一点上,我认为 'pull()' 方法的内容是不相关的——我不好奇它在哪里被覆盖,我很好奇它是如何被覆盖的。
除非已将变量传递给方法,否则 PHP 如何更改变量?
我的函数中没有引用,节点直接传递;
function my_function($node) {
即使我克隆了我的对象
即使我重命名了 var
$my_node = $node;
克隆的对象仍然被覆盖。
重命名的对象仍然被覆盖(即,它与名称无关。)
我很想知道这是怎么可能的。pull() (或相关方法)如何覆盖尚未给出的变量?
我需要重申;我不关心值在哪里被改变,我关心当它没有被传递给方法时它是如何被改变的。