У меня есть следующий код: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;
}
И, если $ я больше 0 всегда возвращает 1 вместо 2 или 3 .. Как я могу сделать, чтобы вернуться эти другие цифры?
Вы никогда не фиксируете возвращаемые значения рекурсивных вызовов, поэтому на верхнем уровне вы получите только возвращаемое значение FIRST. вы, скорее всего, захотите '$ i + = hasMoreParent (...)' вместо этого. –
Можете ли вы написать пример @MarcB? – user3002173