php遞迴無法返回問題,遞迴正確寫法
阿新 • • 發佈:2019-01-24
常規寫法
function digui($tiaojian){
if ($tiaojian) {
return $data;
}
else{
return digui();
}
}
注意:條件不成立時,一定要return 遞迴函式。不然無法正常返回
如果遞迴只是為了輸出。可以簡寫:
function digui($tiaojian){
if ($tiaojian) {
echo $data;
}
else{
digui();
}
}
引用寫法
function digui($tiaojian,&$result){
if ($tiaojian) {
$result=$data;
}
else{
digui();
}
}
靜態變數
function digui(){
static $count=0;
echo $count;
$count++;
}
digui();
digui();
digui();
digui();
digui();
輸出結果為:0 1 2 3 4
注意:靜態變數方法一定要謹慎使用。因為每次呼叫該方法的時候,都會對原來最早定義這個變數方法的基礎上去操作。
甚至 unset 對靜態變數也無法銷燬
function digui(){
static $count=0;
echo $count;
$count++;
unset($count);
}
digui();
digui();
digui();
digui();
digui();
這段程式碼依舊輸出 0 1 2 3