2013-04-12 47 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