我在静静地编程,但遇到了一个他无法解决的严重问题。我准备了一个简单的脚本来举例说明。我避开了这个问题,但想要解释发生了什么。PHP中的简单逻辑
<?php class Test{
public $Dados, $LastDados;
public function Test(){
$this->Dados = (object) array();
$this->LastDados = (object) array();
$this->Dados->Latitude = 111;
$this->LastDados->Latitude = 333;
$this->LastDados = $this->Dados;
}
public function Show(){
$this->Dados->Latitude = 222;
echo $this->LastDados->Latitude;
}
}
$C = new Test;
$C->Show();
?>
结果将是'222',但为什么?
感谢您的帮助!
非常感谢! 我不知道克隆方法。我想我需要学习更多! :) –
除了@ timhysniu的回答。在PHP中,_objects_通过引用**传递并分配**(就像它们链接在一起),而_arrays_则通过值**传递**。当你使用'clone'的时候,你基本上是告诉PHP去掉引用,类似于传递值。你可以尝试看看如果你的对象是数组会发生什么。你会看到你不需要克隆它们。请记住这一点,以便将对象和数组传递给方法/函数。你可以指定一个数组也应该通过引用传递,就像一个对象一样,编写&infront:'$ lastDados =&dados' – Michael