2013-04-12 31 views
-4

我有归结为这样的一个功能:PHP函数返回未分配给变量

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来分配数组,没有运气。

我甚至不知道从哪里开始弄清楚发生了什么。

预先感谢您。 :)

+2

我的看法不同http://codepad.viper-7.com/XhdX0Y –

+0

很可能你的'$ var1 = do_something_cool();'在你的真实代码中有一个错字。 – Jon

+0

可能'$ var1'正在被覆盖的地方,你没有注意到 – Ejaz

回答

2

执行的例子,因为你已经张贴作为简单,它会工作:

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(); 

只会覆盖$var1,返回值为do_something_cool()。没有隐藏的魔法

所以我想你的问题并不像你发布的那样简单,而且你的代码还有其他错误。

+0

http://sandbox.onlinephpfunctions.com/code/34e180b5f31bcb71393ca72b44427b3b6de7227b这里是一个运行代码的沙箱,如果你想在你的答案中加入它! (与它给出的输出) –

+0

@HugoDozois谢谢! :) – hek2mgl