程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php5.4傳引用時報錯問題分析

php5.4傳引用時報錯問題分析

編輯: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程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved