PHP 中的“&”符号是什么意思?

php
2022-08-30 21:43:14

我试图在Google上找到这个答案,但我想这个符号可以作为某种运算符工作,或者只是由于任何原因通常不是一个可搜索的术语。无论如何。我在学习如何创建WordPress插件时看到了这个代码片段,所以我只需要知道当它在保存类对象的变量之前时意味着什么。&&

//Actions and Filters
if (isset($dl_pluginSeries)) {

    //Actions
    add_action('wp_head', array(&$dl_pluginSeries, 'addHeaderCode'), 1);
    //Filters
    add_filter('the_content', array(&$dl_pluginSeries, 'addContent'));
}

答案 1

这将强制通过引用传递变量。通常,将为简单类型创建硬拷贝。这对于大字符串(性能提升)或者如果您想在不使用 return 语句的情况下操作变量,这可能很方便,例如:

$a = 1;

function inc(&$input)
{
   $input++;
}

inc($a);

echo $a; // 2

对象将自动通过引用传递。

如果要处理到函数的副本,请使用

clone $object;

然后,原始对象不被更改,例如:

$a = new Obj;
$a->prop = 1;
$b = clone $a;
$b->prop = 2; // $a->prop remains at 1

答案 2

变量前面的 & 符号表示对原始值的引用,而不是副本或仅表示值。

请参阅此处:http://www.phpreferencebook.com/samples/php-pass-by-reference/


推荐