search

Home  >  Q&A  >  body text

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

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

reply all(3)I'll reply

  • PHP中文网

    PHP中文网2017-04-10 15:06:46

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

    另外要搞清楚:

    $a = 1;
    $c = &$a;
    

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

    reply
    0
  • 黄舟

    黄舟2017-04-10 15:06:46

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

    reply
    0
  • 迷茫

    迷茫2017-04-10 15:06:46

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

    reply
    0
  • Cancelreply