当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-07-06 20:36:56 浏览: 评论:0 

本文实例分析了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及以及版本,测试结果

  1. <?php 
  2. function test($aa,&$bb){ 
  3.   if($aa < $bb){ 
  4.     echo $bb."<br>"
  5.     $bb--; 
  6.     test($aa,&$bb); 
  7.   } 
  8. $aa = 3; 
  9. $bb = 6; 
  10. test($aa,&$bb); 
  11. ?> 

运行结果如下

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上面测试,只测试传引用:

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

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

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

  1. <?php 
  2. function test($aa,&$bb){ 
  3.   if($aa < $bb){ 
  4.     $bb--; 
  5.     echo $bb."<br>"
  6.     test($aa,$bb); 
  7.   } 
  8. $aa = 3; 
  9. $bb = 6; 
  10. test($aa,$bb); 
  11. ?> 

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

5

4

3

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

Tags: php5 4传引用

分享到: