Home  >  Article  >  Backend Development  >  求知道的大大解释一下这里不用&的原因

求知道的大大解释一下这里不用&的原因

WBOY
WBOYOriginal
2016-06-06 20:41:521012browse

<code>请输入代码
    <?php $a=1;
    function fun(&$a){
               $a++;
     }
    echo fun($a);         //为什么这里的赋值过程不是先$c=&$a,然后再fun($c)
    ?>
</code>

回复内容:

<code>请输入代码
    <?php $a=1;
    function fun(&$a){
               $a++;
     }
    echo fun($a);         //为什么这里的赋值过程不是先$c=&$a,然后再fun($c)
    ?>
</code>

函数调用的过程中,实参是要传给形参的,是传值还是传址,由函数参数如何声明(即加不加&)有关系。

另外要搞清楚:

<code>$a = 1;
$c = &$a;
</code>

这句话跟cpp不一样,$c不是$a的引用。而是,$a所绑定的值也被$c绑定了,也就是说,$a$c这两个名字是等价的。

求知道的大大解释一下这里不用&的原因

为什么要用多个变量去存储?
函数直接用引用传值更省内存

php在使用引用传值时候,只需要在函数定义时,显式地&$a声明为引用传值,在调用函数的时候,不需要,$a即可。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn