本文實例分析了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及以及版本,測試結果
<?phpfunction 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上面測試,只測試傳引用
<?phpfunction 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以及遞歸傳引用
<?phpfunction 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程序設計有所幫助。