上篇文章給大家介紹了《PHP中什么是URL.session id?他們之間有什么安全隱患?session id的作用?》,本文繼續(xù)給大家介紹PHP中什么是遞歸函數(shù)?基本要素是什么?他的用途是什么?(附代碼)本篇文章,將會(huì)讓你們有不一樣的收獲,一起去繼續(xù)探索PHP的奧秘吧!!!
什么是遞歸函數(shù):
遞歸就是某個(gè)函數(shù)直接或間接地調(diào)用了自身,這種調(diào)用方式叫做遞歸調(diào)用。說白了,還是函數(shù)調(diào)用。既然是函數(shù)調(diào)用,那么就有一個(gè)雷打不動(dòng)的原則:所有被調(diào)用的函數(shù)都將創(chuàng)建一個(gè)副本,各自為調(diào)用者服務(wù),而不受其他函數(shù)的影響。
遞歸有兩個(gè)基本要素:
-
邊界條件:確定遞歸到何時(shí)終止,也稱為遞歸出口。
-
遞歸模式:大問題是如何分解為小問題的,也稱為遞歸體。遞歸函數(shù)只有具備了這兩個(gè)要素,才能在有限次計(jì)算后得出結(jié)果。
遞歸函數(shù)的用途:
遞歸函數(shù)通常用來解決結(jié)構(gòu)自相似的問題
具體我們以代碼為例:
<?php function num( $num){ echo $num; if($num > 0){ num($num - 1); }else{ echo '<hr/>'; } echo $num; } num(2); ?>
代碼解析:
首先定義一個(gè)function num()函數(shù),然后我們?cè)诙x一個(gè)$num放在function函數(shù)中,緊接著我們進(jìn)來輸出(echo)剛剛定義的函數(shù)($num),同樣出去也輸出($num),緊接著我們使用if語句進(jìn)行判斷($num>0),我們進(jìn)行(num-1),否則就輸出一條橫線,輸出(echo)$num;這時(shí)當(dāng)我們調(diào)用num并傳入一個(gè)2時(shí),此時(shí)我們輸出的結(jié)果會(huì)得到我們所運(yùn)行的代碼(如下所示);以上代碼是怎樣執(zhí)行的呢?首先我們是調(diào)用一個(gè)num的函數(shù),此時(shí)我們所賦值的2會(huì)賦值給num,所以輸出num就是2,緊接著進(jìn)入到if語句中進(jìn)行判斷,我們會(huì)發(fā)現(xiàn)依然在調(diào)用函數(shù),此時(shí)我們輸出為1 賦給num,而num的值也就是1,以此類推,我們就會(huì)得到210-012
執(zhí)行結(jié)果:
推薦學(xué)習(xí):《PHP視頻教程》