在我的CodeIgniter应用程序中,我在函数中定义了一个数组(比如函数-A),我在函数-A中动态地向该数组添加了一些值。
我从函数-A调用另一个函数(比如函数-B),这个函数-B递归地向函数-A中定义的原始数组添加一些值。但问题是,当我最终打印数组时,它只在函数A中添加了值。
那么请告诉我为什么元素没有被推入函数-B中的数组?
代码:
function A() {
$ChnCat_tags = array();
//some code
$ChnCat_tags[] = array(
'level' => $level,
'value' => $row_vct->id_vct,
'label' => $row_vct->displayname_vct,
'disable' => $disb
);
recursion_result = function-B($ChnCat_tags);
print_r($ChnCat_tags); //only prints values added in function-A
}
function B($ChnCat_tags) {
//some code
$ChnCat_tags[] = array(
'level' => $level,
'value' => $row_vct->id_vct,
'label' => $row_vct->displayname_vct,
'disable' => $disb
);
recursion_result = function-B($ChnCat_tags);
return recursion_result;
}
答案 0 :(得分:0)
Hello当您从函数A调用该函数时,您只需要将函数B中的数组变量作为引用传递,您的工作就完成了。 检查以下代码:
function A() {
$ChnCat_tags = array();
//some code
$ChnCat_tags[] = array(
'level' => $level,
'value' => $row_vct->id_vct,
'label' => $row_vct->displayname_vct,
'disable' => $disb
);
recursion_result = function-B(&$ChnCat_tags);
print_r($ChnCat_tags); //only prints values added in function-A
}
function B($ChnCat_tags) {
//some code
$ChnCat_tags[] = array(
'level' => $level,
'value' => $row_vct->id_vct,
'label' => $row_vct->displayname_vct,
'disable' => $disb
);
recursion_result = function-B($ChnCat_tags);
return recursion_result;
}