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