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。如何使它返回其他数字?

紫杉属

您缺少返回关键字以实现递归,否则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;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章