加入收藏 | 设为首页 | 会员中心 | 我要投稿 济宁站长网 (https://www.0537zz.cn/)- 行业智能、边缘计算、专有云、AI硬件、5G!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2022-07-16 10:36:56 所属栏目:PHP教程 来源:互联网
导读:本文实例分析了php5.4传引用时报错问题,分享给大家供大家参考,具体如下: php5.3系列版本以及以前版本,传引用没有什么问题,升级到php5.4以后,传引用的地方,全报错 Fatal error: Call-time pass-by-reference has been removed in F:workwampwwwtes
  本文实例分析了php5.4传引用时报错问题,分享给大家供大家参考,具体如下:
 
  php5.3系列版本以及以前版本,传引用没有什么问题,升级到php5.4以后,传引用的地方,全报错
 
  Fatal error: Call-time pass-by-reference has been removed in F:workwampwwwtesttest.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:workwampwwwtesttest.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有点坑爹,如果不知道改变的,升级就很郁闷了。

(编辑:济宁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读