什么是&在变量名前面是什么意思?
例如& $ salary vs. $ salary
答案 0 :(得分:58)
它传递对变量的引用,因此当编辑分配引用的任何变量时,原始变量将被更改。在创建更新现有变量的函数时,它们非常有用。您可以简单地将引用传递给函数,而不是硬编码更新哪个变量。
示例强>
<?php
$number = 3;
$pointer = &$number; // Sets $pointer to a reference to $number
echo $number."<br/>"; // Outputs '3' and a line break
$pointer = 24; // Sets $number to 24
echo $number; // Outputs '24'
?>
答案 1 :(得分:2)
它是一个引用,与其他语言(如C ++)非常相似。 documentation中有一节介绍它。
答案 2 :(得分:0)
要通过引用赋值,只需在被赋值的变量(源变量)的开头加上一个与号 (&)。例如,以下代码片段输出两次“我的名字是鲍勃”:
$foo = 'Bob'; // Assign the value 'Bob' to $foo
$bar = &$foo; // Reference $foo via $bar.
$bar = "My name is $bar"; // Alter $bar...
echo $bar;
echo $foo; // $foo is altered too.
需要注意的一件重要事情是只能通过引用分配命名变量。
$foo = 25;
$bar = &$foo; // This is a valid assignment.
$bar = &(24 * 7); // Invalid; references an unnamed expression.
function test()
{
return 25;
}
$bar = &test(); // Invalid.
最后,在获取一个引用作为参数时,它必须传递一个变量的引用,而不是其他任何东西。虽然这不是一个大问题,因为我们知道我们为什么要使用它。但它可以发生很多次。这是它的工作原理:
function change ( &$ref ) {
$ref = 'changed';
}
$name = 'Wanda';
change ( $name ); // $name reference
change ( 'Wanda' ); // Error
echo $name; // output: changed
README(更多信息)
答案 3 :(得分:-1)
用于通过引用传递对象。
请参阅PHP文档中的this entry。