在 PHP 中,对象是按引用传递的。当你将一个对象赋值给另一个变量,或将对象作为参数传递给一个函数或方法时,实际上是将对象的引用传递给这个变量、函数或方法。
这意味着,当你对传递给函数或方法的对象进行修改时,原始对象也会受到影响。这是因为它们引用的是同一个对象实例。相反,如果你将一个对象赋值给另一个变量,然后对其中一个变量进行修改,另一个变量也会反映这些修改。
示例:
class Person {
public $name;
}
// 创建一个对象
$person1 = new Person();
$person1->name = "John";
// 将对象赋值给另一个变量
$person2 = $person1;
// 修改其中一个变量的属性
$person2->name = "Jane";
// 原始对象也会受到影响
echo $person1->name; // 输出 "Jane"
需要注意的是,PHP中的内置函数(如unset()和clone())对对象的引用传递也是相同的。因此,在使用这些函数时也要注意对象的引用传递。