PHP中的=是什么意思?
考虑:
$smarty =& SESmarty::getInstance();
什么是&
for?
它通过引用传递。 这意味着它不会创建传递的值的副本。
见:http://php.net/manual/en/language.references.php(见亚当的答案)
通常,如果你传递这样的东西:
$a = 5;
$b = $a;
$b = 3;
echo $a; // 5
echo $b; // 3
如果更改第二个变量( $b
),原始变量( $a
)将不会被修改。 如果你通过参考传递:
$a = 5;
$b =& $a;
$b = 3;
echo $a; // 3
echo $b; // 3
原来也改变了。
传递对象时无用,因为默认情况下它们将通过引用传递。
在PHP 4中,它有一种(笨拙)关联的两个变量。
$j = 'original';
$i =& $j;
$i = 'modified';
echo $j; // The output is 'modified'
同样...
$j = 'original';
$i =& $j;
$j = 'modified';
echo $i; // The output is 'modified'
当涉及到PHP 5中的对象时,其中一些问题变得不那么令人不快,但我认为它的核心是相同的,所以这些示例应该仍然有效。
引用用于别名变量,并且有效地使用旧对象系统是必需的。
在PHP 4中,对象的行为与任何其他值类型相同,即赋值会创建该对象的副本。 如果您想避免这种情况,您必须使用示例代码中的引用。
在PHP 5中,对象变量不再包含对象本身,但一个句柄(AKA对象标识符)和赋值只会复制句柄。 使用参考不再是必要的。
链接地址: http://www.djcxy.com/p/1715.html