Codeigniter Возвращает массив вызывающей функции

У меня есть модель с одной нормальной функцией и одной рекурсивной функцией, как показано ниже:

public function fxn1($mid)
{
    //Some CRUD code is also written to fetch something for some purpose, so using fxn1 is necessary before calling the recursive function.

    $arr=array();
    $i=0;
    return $this->fxn2($mid, $arr, $i); //THIS RETURNS NULL TO THE CONTROLLER WHILE IT SHOULD SEND THE ARRAY VALUES. 
    //var_dump($this->fxn2($mid, $arr, $i)) also prints NULL here
}
public function fxn2($mid, $arr, $arrcnt)
{
    //Some of my code fetches values from table and pushes them to the array
    array_push($arr, valuefetchedfromtable);
    $arrcnt++;
    if ($arrcnt >= count($arr))
    {
        return $arr; // THIS LINE RETURNS NULL TO FXN1

        /* Using var_dump($arr); here prints the array values fine: 
        array(81) { [0]=> string(8) "20181006" [1]=> string(8) "20181007" [2]=> string(8) "20181011" [3]=> string(8)…………………...and so on
        */

    }
    else
        $this->fxn2($arr[$arrcnt-1], $arr, $arrcnt);
}

Как вернуть $ arr из fxn2 в fxn1, чтобы fxn1 мог возвращать значения массива в контроллер?

добавить возврат else return $this->fxn2(...?

splash58 30.11.2018 14:52

Ох, как я это пропустил, Спасибо @ splash58

ITSagar 30.11.2018 14:54
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
61
1

Ответы 1

Поскольку у меня нет точного кода для тестирования, я сделал несколько настроек. Попробуйте, заменив свой код следующим.

public function fxn1($mid)
{
    //Some CRUD code is also written to fetch something for some purpose, so using fxn1 is necessary before calling the recursive function.

    $arr=array();
    $i=0;
    return $this->fxn2($mid,$arr,$i); //THIS RETURNS NULL TO THE CONTROLLER WHILE IT SHOULD SEND THE ARRAY VALUES. 
    //var_dump($this->fxn2($mid,$arr,$i)) also prints NULL here
}
public function fxn2($mid,&$arr,&$arrcnt) //change over here
{
    //Some of my code fetches values from table and pushes them to the array
    array_push($arr, valuefetchedfromtable);
    $arrcnt++;
    if ($arrcnt>=count($arr))
    {
        return $arr; // THIS LINE RETURNS NULL TO FXN1

        /* Using var_dump($arr); here prints the array values fine: 
        array(81) { [0]=> string(8) "20181006" [1]=> string(8) "20181007" [2]=> string(8) "20181011" [3]=> string(8)…………………...and so on
        */

    }
    else
        $this->fxn2($arr[$arrcnt-1],$arr,$arrcnt);
}

Другие вопросы по теме