<?php    $sum=10;
    function demo($number){
        $number=$number+20;
    }
    demo(&$num);
    echo $num,"\n";
   
?>
结果为什么是20,而不是30?

解决方案 »

  1.   


    /*
    Deprecated: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of demo(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in /mydev_src/zend_framework_learn/www/test/index.php on line 7
    20
    新版本的php已经不让这样用了。应是这样
    */
    $num=10;
    function demo(&$number){
    $number=$number+20;
    }
    demo($num);
    echo $num,"\n";
      

  2.   


    你这个不对,结果是10,$num是全局变量应该改为$num=10;
    function demo($number)
    {
    $number=$number+20;
    return $number;
    }
    $num = demo($num);
    echo $num,"\n";这样结果才是30
      

  3.   

    $num=10;
    function demo(&$number){
        $number=$number+20;
    }
    demo($num);
    echo $num,"\n";如果是这个意思,那么结果是30
      

  4.   

    啊!是我错了,应该是$num=10,而不是$sum=10.那结果为什么是20,而不是30?