由于现在默认情况下对象是通过引用传递的,因此是否可能存在一些特殊情况&$obj
有道理吗?
对象使用不同的引用机制。&$object
更多的是参考中的参考。你无法真正比较它们。
看对象和引用:
PHP 引用是一个别名,它允许两个不同的变量写入相同的值。从 PHP 5 开始,对象变量不再包含对象本身作为值。它只包含一个对象标识符,允许对象访问器找到实际的对象。当一个对象通过参数发送、返回或分配给另一个变量时,不同的变量不是别名:它们保存指向同一个对象的标识符的副本。
&$object
是其他东西$object
。我给你举个例子:
foreach ($objects as $object) {
if ($cond) {
$object = new Object(); // This won't affect $objects
}
}
foreach ($objects as &$object) {
if ($cond) {
$object = new Object(); // This will affect $objects
}
}
如果有道理或者有必要的话我不会回答这个问题。这些是基于意见的问题。你绝对可以没有&
对对象的引用,就像根本没有对象一样。两种机制的存在是 PHP 向后兼容性的结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)