php5.4传引用时报错问题分析

5年以前  |  阅读数:863 次  |  编程语言:PHP 

本文实例分析了php5.4传引用时报错问题。分享给大家供大家参考,具体如下:

php5.3系列版本以及以前版本,传引用没有什么问题,升级到php5.4以后,传引用的地方,全报错

Fatal error: Call-time pass-by-reference has been removed in F:\work\wamp\www\test\test.php on line 6。看一下下面的例子。

例1,递归传引用,在php 5.3及以及版本,测试结果


    <?php
    function test($aa,&$bb){
      if($aa < $bb){
        echo $bb."<br>";
        $bb--;
        test($aa,&$bb);
      }
    }
    $aa = 3;
    $bb = 6;
    test($aa,&$bb);
    ?>

运行结果如下

6
5
4

php 5.4以后就不行了,我是用php 5.4.11测试的。报Fatal error: Call-time pass-by-reference has been removed in F:\work\wamp\www\test\test.php on line 6。

例2,php5.4.11上面测试,只测试传引用


    <?php
    function test($aa,&$bb){
      if($aa < $bb){
        $bb--;
        echo $bb."<br>";
        //test($aa,&$bb);
      }
    }
    $aa = 3;
    $bb = 6;
    test($aa,$bb); //php5.4,php5.3及以前版本,输入结果是5
    //test($aa,&$bb); //php5.3输入结果是5,php5.4及以后,报错Fatal error: Call-time pass-by-reference 。。。。
    ?>

php5.4以后,定义时可以有&,调用时加上&就会报错。这样调用感觉很怪。

例3,php5.4以及递归传引用


    <?php
    function test($aa,&$bb){
      if($aa < $bb){
        $bb--;
        echo $bb."<br>";
        test($aa,$bb);
      }
    }
    $aa = 3;
    $bb = 6;
    test($aa,$bb);
    ?>

php5.2,php5.3,php5.4都可以运行,运行结果:

5
4
3

感觉这个5.3升到5.4有点坑爹,如果不知道改变的,升级就很郁闷了。

更多关于PHP错误与异常相关内容感兴趣的读者可查看本站专题:《PHP错误与异常处理方法总结

希望本文所述对大家PHP程序设计有所帮助。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例