程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 淺析PHP遞歸函數返回值使用

淺析PHP遞歸函數返回值使用

編輯:關於PHP編程

PHP經過長時間的發展,很多用戶都很了解PHP了,PHP最初是1994年Rasmus Lerdorf創建的,剛剛開始只是一個簡單的用Perl語言編寫的程序,用來統計他自己網站的訪問者。後來又用C語言重新編寫,包括可以訪問數據庫。

在 1995年以Personal Home Page Tools (PHP Tools) 開始對外發表第一個版本,Lerdorf寫了一些介紹此程序的文檔,並且發布了PHP1.0。在這早期的版本中,提供了訪客留言本、訪客計數器等簡單的功 能。以後越來越多的網站使用了PHP,並且強烈要求增加一些特性,比如循環語句和數組變量等等,在新的成員加入開發行列之後,在1995年 中,PHP2.0發布了。第二版定名為PHP/FI(Form Interpreter)。PHP/FI加入了對mSQL的支持,從此建立了PHP在動態網頁開發上的地位。到了1996年底,有15000個網站使用 PHP/FI;時間到了1997年中,使用PHP/FI的網站數字超過五萬個。而在1997年中,開始了第三版的開發計劃,開發小組加入了 Zeev Suraski 及 Andi Gutmans,而第三版就定名為PHP3。2000年,PHP4.0又問世了,其中增加了許多新的特性。

在我的之前的編程中遇到了一個PHP遞歸函數的問題,其實是一個很簡單的問題。問題出在PHP遞歸函數的返回值上。這是開始寫的:

  1. <?php 
  2. functiontest($i)  
  3. {  
  4. $i-=4;  
  5. if($i<3)  
  6. {  
  7. return$i;  
  8. }  
  9. else  
  10. {  
  11. test($i);  
  12. }  
  13.  
  14. }  
  15.  
  16. echotest(30);  
  17. ?> 

這段代碼看起來沒有問題,其實有else裡面是有問題的。在這裡執行的test沒有返回值。所以雖然滿足條件$i<3時return$i整個函數還是不會返回值的。對上面的PHP遞歸函數做如下修改:

  1. <?php 
  2. functiontest($i)  
  3. {  
  4. $i-=4;  
  5. if($i<3)  
  6. {  
  7. return$i;  
  8. }  
  9. else  
  10. {  
  11. returntest($i);//增加return,讓函數返回值  
  12. }  
  13.  
  14. }  
  15.  
  16. echotest(30);  
  17. ?> 



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