Я пытаюсь получить рекурсивную функцию, работающую на PHP, но она терпит неудачу с «Неустранимая ошибка: допустимый размер памяти 134217728 байт исчерпан».PHP рекурсивная функция с массивом в параметре
Почему это не работает?
$atest = array();
$atest = $this->resolveCategories(3,$atest);
var_dump($atest);
И рекурсивная функция:
private function resolveCategories($iCategoryId,$aCategories){
$oCategory = CategoryQuery::create()->findOneById($iCategoryId);
if ($oCategory->getParentId() != null){
array_push($aCategories,$oCategory->getName());
$this->resolveCategories($iCategoryId,$aCategories);
}
return $aCategories;
}
Вы спрашиваете о том, как поднять лимит памяти? или как улучшить алгоритм? – Sekai
:) Нет, я думаю, что алгоритм должен быстро определяться, потому что у меня есть только несколько записей в моей базе данных. Так что я думаю, что я получил ошибку кодирования где-то, чего я не нашел. –
Кажется, вы каким-то образом вызвали бесконечную рекурсию. Трудно отладить это, не видя фактические данные. У вас есть возможность отладки? Можете ли вы определить, где значения отличаются от ожидаемых? –