淺析PHP遞歸函數(shù)返回值使用
PHP經(jīng)過長時間的發(fā)展,很多用戶都很了解PHP了,PHP最初是1994年Rasmus Lerdorf創(chuàng)建的,剛剛開始只是一個簡單的用Perl語言編寫的程序,用來統(tǒng)計他自己網(wǎng)站的訪問者。后來又用C語言重新編寫,包括可以訪問數(shù)據(jù)庫。
#T#在 1995年以Personal Home Page Tools (PHP Tools) 開始對外發(fā)表***個版本,Lerdorf寫了一些介紹此程序的文檔,并且發(fā)布了PHP1.0。在這早期的版本中,提供了訪客留言本、訪客計數(shù)器等簡單的功 能。以后越來越多的網(wǎng)站使用了PHP,并且強烈要求增加一些特性,比如循環(huán)語句和數(shù)組變量等等,在新的成員加入開發(fā)行列之后,在1995年 中,PHP2.0發(fā)布了。第二版定名為PHP/FI(Form Interpreter)。PHP/FI加入了對mSQL的支持,從此建立了PHP在動態(tài)網(wǎng)頁開發(fā)上的地位。到了1996年底,有15000個網(wǎng)站使用 PHP/FI;時間到了1997年中,使用PHP/FI的網(wǎng)站數(shù)字超過五萬個。而在1997年中,開始了第三版的開發(fā)計劃,開發(fā)小組加入了 Zeev Suraski 及 Andi Gutmans,而第三版就定名為PHP3。2000年,PHP4.0又問世了,其中增加了許多新的特性。
在我的之前的編程中遇到了一個PHP遞歸函數(shù)的問題,其實是一個很簡單的問題。問題出在PHP遞歸函數(shù)的返回值上。這是開始寫的:
- <?php
- functiontest($i)
- {
- $i-=4;
- if($i<3)
- {
- return$i;
- }
- else
- {
- test($i);
- }
- }
- echotest(30);
- ?>
這段代碼看起來沒有問題,其實有else里面是有問題的。在這里執(zhí)行的test沒有返回值。所以雖然滿足條件$i<3時return$i整個函數(shù)還是不會返回值的。對上面的PHP遞歸函數(shù)做如下修改:
- <?php
- functiontest($i)
- {
- $i-=4;
- if($i<3)
- {
- return$i;
- }
- else
- {
- returntest($i);//增加return,讓函數(shù)返回值
- }
- }
- echotest(30);
- ?>