我有以下代碼:PHP遞歸函數沒有返回預期
use app\models\Kategorije;
function hasMoreParent($id,$i = 0){
$model = new Kategorije();
$parent_id = $model::find()->where('id = :id',[':id' => $id])->one()->parent_id;
if ($parent_id > 1) {
$i++;
hasMoreParent($parent_id,$i);
}
return $i;
}
而且,當$ i大於0,它總是返回1而不是2或3 .. 我怎樣才能使它返回那些其他數字?
你永遠不會捕獲遞歸調用的返回值,所以在頂層,你只會得到返回的FIRST調用的值。你可能需要'$ i + = hasMoreParent(...)'。 –
你能寫出例子@MarcB嗎? – user3002173