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