本文實例分析了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程序設計有所幫助。