значения не добавляет в массив динамически - PullRequest
0 голосов
/ 21 мая 2018

В CodeIgniter я хочу добавить значения в массив из двух разных функций, но значения добавляются в массив только внутри первой функции.Подскажите пожалуйста в чем может быть проблема?

Код:

public $ChnCat_tags = array();
function first_function() {
    //some code 
    $ChnCat_tags[] = array(
        'level' => $level,
        'value' => $row_vct->id_vct,
        'label' => $row_vct->displayname_vct,
        'disable' => $disb
    );
    $recursion_result = second_function($ChnCat_tags);
    return $ChnCat_tags; //only returns values added inside first_function
}

function second_function($ChnCat_tags) {
    //some code
    $ChnCat_tags[] = array(
        'level' => $level,
        'value' => $row_vct->id_vct,
        'label' => $row_vct->displayname_vct,
        'disable' => $disb
    );
    recursion_result = second_function($ChnCat_tags);
    return recursion_result;
}

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

делай так

function first_function() {

    $ChnCat_tags[] = array(
        'level' => $level,
        'value' => $row_vct->id_vct,
        'label' => $row_vct->displayname_vct,
        'disable' => $disb
    );

    # Must call function with $this
    $recursion_result = $this->second_function($ChnCat_tags); 

    # print the value of $recursion_result whish hold entire data
    print_r($recursion_result); 
}

function second_function($ChnCat_tags) {

    $ChnCat_tags[] = array(
        'level' => $level,
        'value' => $row_vct->id_vct,
        'label' => $row_vct->displayname_vct,
        'disable' => $disb
    );
    # just return the array data.
    return $ChnCat_tags;
}
0 голосов
/ 21 мая 2018

Ну, вы можете просто начать использовать $this->ChnCat_tags вместо просто ChnCat_tags везде.

Или ( передать по ссылке ):

function first_function() {
    //some code 
    $ChnCat_tags[] = array(
        'level' => $level,
        'value' => $row_vct->id_vct,
        'label' => $row_vct->displayname_vct,
        'disable' => $disb
    );
    second_function($ChnCat_tags);
    return $ChnCat_tags;
}

function second_function(&$ChnCat_tags) {
    //some code
    $ChnCat_tags[] = array(
        'level' => $level,
        'value' => $row_vct->id_vct,
        'label' => $row_vct->displayname_vct,
        'disable' => $disb
    );
    second_function($ChnCat_tags);
    // no need to return now
    //return recursion_result;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...