什么是“&” PHP中的符号意味着什么

时间:2010-03-11 06:00:27

标签: php

我试图在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'));
}

4 个答案:

答案 0 :(得分:23)

这将强制变量通过引用传递。通常,将为简单类型创建硬拷贝。对于大字符串(性能增益)或者如果你想在不使用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

答案 1 :(得分:10)

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

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

答案 2 :(得分:9)

答案 3 :(得分:4)

我用它来向函数发送变量,并让函数改变变量。函数完成后,我不需要将函数返回到返回值并将新值设置为我的变量。

实施例

function fixString(&$str) {
    $str = "World";
}

$str = "Hello";
fixString($str);
echo $str; //Outputs World;

没有&

的代码
function fixString($str) {
    $str = "World";
    return $str;
}

$str = "Hello";
$str = fixString($str);
echo $str; //Outputs World;