'&'怎么样? PHP中的符号会影响结果吗?

时间:2009-06-16 02:23:48

标签: php operators joomla1.5

我已经编写并玩了很多PHP函数和变量,原作者编写了原始代码,我不得不继续开发产品,即。 Joomla组件/模块/插件我总是提出这个问题:

'&'怎么样?附加到函数或变量的符号会影响结果吗?

例如:

$variable1 =& $variable2;

OR

function &usethisfunction() {
}

OR

function usethisfunction(&thisvariable) {
{

我已尝试搜索PHP手册和其他相关来源,但无法找到专门解决我问题的任何内容。

3 个答案:

答案 0 :(得分:7)

这些被称为references

以下是一些“常规”PHP代码的示例:

function alterMe($var) {
    $var = 'hello';
}

$test = 'hi';
alterMe($test);
print $test; // prints hi

$a = 'hi';
$b = $a;
$a = 'hello';
print $b; // prints hi

这是你可以使用引用实现的:

function alterMe(&$var) {
    $var = 'hello';
}

$test = 'hi';
alterMe($test);
print $test; // prints hello

$a = 'hi';
$b &= $a;
$a = 'hello';
print $b; // prints hello

详细信息在文档中。但基本上是:

  

PHP中的引用是一种通过不同名称访问相同变量内容的方法。它们不像C指针;相反,它们是符号表别名。请注意,在PHP中,变量名称和变量内容是不同的,因此相同的内容可以具有不同的名称。最接近的类比是Unix文件名和文件 - 变量名是目录条目,而变量内容是文件本身。引用可以比作​​Unix文件系统中的硬链接。

答案 1 :(得分:2)

<?php

$a = "hello";   # $a points to a slot in memory that stores "hello"
$b = $a;        # $b holds what $a holds

$a = "world";
echo $b;        # prints "hello"

现在,如果我们添加&amp;

$a = "hello";   # $a points to a slot in memory that stores "hello"
$b = &$a;   # $b points to the same address in memory as $a

$a = "world";

# prints "world" because it points to the same address in memory as $a.
# Basically it's 2 different variables pointing to the same address in memory
echo $b;        
?>

答案 2 :(得分:1)

这是一个参考。它允许2个变量名称指向相同的内容。