我已经编写并玩了很多PHP函数和变量,原作者编写了原始代码,我不得不继续开发产品,即。 Joomla组件/模块/插件我总是提出这个问题:
'&'怎么样?附加到函数或变量的符号会影响结果吗?
例如:
$variable1 =& $variable2;
OR
function &usethisfunction() {
}
OR
function usethisfunction(&thisvariable) {
{
我已尝试搜索PHP手册和其他相关来源,但无法找到专门解决我问题的任何内容。
答案 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个变量名称指向相同的内容。