PHP &$string - 这是啥意思? [复制]

Posted

技术标签:

【中文标题】PHP &$string - 这是啥意思? [复制]【英文标题】:PHP &$string - What does this mean? [duplicate]PHP &$string - 这是什么意思? [复制] 【发布时间】:2013-12-23 13:13:54 【问题描述】:

我一直在谷歌搜索,但找不到任何东西。

$x->func(&$string, $str1=false, $str2=false);

& 之前的 $string &$string 是做什么的?

【问题讨论】:

谁将此标记为重复:这目前是不正确的......这个问题不是重复的,因为符号“&$”的组合不会显示在所谓的引用问题中。请在将问题标记为重复问题时更加小心和考虑。 迈克是对的。它没有被回答,至少在指定的页面上没有。这种回复是不负责任的。它们应该被禁止,制作它们的人应该被降级。 【参考方案1】:

您正在通过引用分配该数组值。

通过引用 (&$) 和 $ 传递参数是,当您通过引用传递参数时,您将处理原始变量,这意味着如果您在函数内部更改它,它也会在函数外部更改,如果您通过参数作为副本,函数创建此变量的副本实例,并处理此副本,因此如果您在函数中更改它,它不会在它之外更改

参考:http://www.php.net/manual/en/language.references.pass.php

【讨论】:

简单解释,谢谢 您的文档链接指向一个相关但不同的主题。 @Rob Baillie,谢谢,我已经更新了链接。【参考方案2】:

& 表明对变量的引用应该传递给函数而不是它的克隆。

在这种情况下,如果函数改变了参数的值,那么传入的变量的值也会改变。

但是,对于 PHP 5,您应该记住以下几点:

从 5.3 开始不推荐使用调用时间参考(如您在示例中所示) 在函数签名上指定时通过引用传递并未被弃用,但对象不再需要,因为现在所有对象都通过引用传递。

您可以在这里找到更多信息:http://www.php.net/manual/en/language.references.pass.php

这里有很多信息: Reference — What does this symbol mean in PHP?

字符串的行为示例:

function changeString( &$sTest1, $sTest2, $sTest3 ) 
    $sTest1 = 'changed';
    $sTest2 = 'changed';
    $sTest3 = 'changed';


$sOuterTest1 = 'original';
$sOuterTest2 = 'original';
$sOuterTest3 = 'original';

changeString( $sOuterTest1, $sOuterTest2, &$sOuterTest3 );

echo( "sOuterTest1 is $sOuterTest1\r\n" );
echo( "sOuterTest2 is $sOuterTest2\r\n" );
echo( "sOuterTest3 is $sOuterTest3\r\n" );

输出:

C:\test>php test.php

sOuterTest1 is changed
sOuterTest2 is original
sOuterTest3 is changed

【讨论】:

【参考方案3】:

& 表示引用传递:

引用允许两个变量引用相同的内容。换句话说,一个变量指向它的内容(而不是成为那个内容)。通过引用传递允许两个变量以不同的名称指向相同的内容。 & 符号 (&) 放在要引用的变量之前。

【讨论】:

【参考方案4】:

这意味着您将对字符串的引用传递给方法。在方法中对字符串所做的所有更改也将反映在代码中该方法之外。

另请参阅:PHP's =& operator

例子:

$string = "test";
$x->func(&$string); // inside: $string = "test2";
echo $string; // test2

没有 & 运算符,您仍然会在变量中看到“test”。

【讨论】:

有趣的是,你提到了“=&”,我今晚才看到并了解到它是什么,我已经编码多年,以前从未使用过。 我也编写了 php 代码多年,但很少使用它。大多数时候你是在传递对象并且不需要这个。【参考方案5】:

& – 通过引用传递。它是通过引用而不是字符串值传递的。

【讨论】:

以上是关于PHP &$string - 这是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

这是啥意思,“XAMPP 安装有问题:-(”?

用 & 符号启动 PHP 函数是啥意思?

PHP 中的 "=&" 和 "&=" 运算符是啥意思?

这是啥意思“超过30秒的最大执行时间”在php中[重复]

参考 - 这个错误在 PHP 中是啥意思?

参考 - 这个错误在 PHP 中是啥意思?