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

上一篇: What does =& mean in PHP?

下一篇: What do the '&=' and '=&' operators do?