我有以下代码:
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 .. 如何让它返回其他数字?
答案 0 :(得分:0)
为了实现递归,您缺少return关键字,否则将执行函数hasMoreParent
,但流程将继续并到达return $i;
语句。
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++;
return hasMoreParent($parent_id, $i);
}
return $i;
}