我有一个函数,可以归结为这样:
function do_something_cool() {
return array(
'key1' => 'value1',
'key2' => 'value2',
);
}
然后,在文件的后面,这四行:
$var1 = array();
$var1 = do_something_cool();
print_r(do_something_cool());
print_r($var1);
函数返回的数组只有在我直接输出返回值时才会被打印出来,打印变量的结果是一个空数组。
我也试过使用array_merge来分配数组,没有运气。
我甚至不知道从哪里开始弄清楚发生了什么。
提前谢谢你。:)
执行示例,就像您发布的那样简单,它将运行:
function do_something_cool() {
return array(
'key1' => 'value1',
'key2' => 'value2',
);
}
$var1 = array();
$var1 = do_something_cool();
print_r(do_something_cool());
print_r($var1);
输出(如预期):
Array
(
[key1] => value1
[key2] => value2
)
Array
(
[key1] => value1
[key2] => value2
)
这是因为
$var1 = do_something_cool();
将用do_something_cool()
的返回值覆盖$var1
。没有隐藏的魔法
所以我猜你的问题不像你发布的那么简单,你的代码中还有其他错误。