=& 在 PHP 中是什么意思?

php
2022-08-30 16:34:04

考虑:

$smarty =& SESmarty::getInstance();

这是做什么用的?&


答案 1

它通过引用传递。这意味着它不会创建所传递值的副本。

参见:http://php.net/manual/en/language.references.php(见亚当的回答)

通常,如果您传递如下内容:

$a = 5;
$b = $a;
$b = 3;

echo $a; // 5
echo $b; // 3

如果更改第二个变量 () ,则不会修改原始变量 ()。如果通过引用传递:$a$b

$a = 5;
$b =& $a;
$b = 3;

echo $a; // 3
echo $b; // 3

原始文件也已更改。

这在传递对象时是无用的,因为它们将默认通过引用传递。


答案 2

在 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 中的对象时,其中一些内容变得不那么令人不快,但我认为它的核心是相同的,所以这些例子应该仍然有效。


推荐