这是一个讨论主题,而不是“帮助我”的问题。如果不通过引用传递变量,如何覆盖变量?
我刚刚遇到一个奇怪的问题。变量(对象)在未传递到任何地方时被覆盖。
示例;
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