2014-01-16 80 views
-1

我有一個這樣的匿名函數數組。我需要像這樣訪問此函數內部的數組鍵:PHP獲取匿名函數鍵名

$funcs = array(
    "fun_1" => function(){ 
     //want here to get fun_1 name (current array key) 
     echo __KEY__; //echoes "fun_1" 
    } 
) 

是否有可能?

+0

爲什麼不把密鑰傳遞給你的匿名函數? – ethan

回答

0

我不知道你正在嘗試做的,但是這是一個選項:

$funcs = array(
     "fun_1" => function($key){ 
       echo $key; 
     } 
    ); 

    foreach($funcs as $key => $func){ 
     $func($key); 
    } 
0

數組元素保持數據項的引用。因此,不同的鍵(或不同陣列的不同元素)可以引用相同的項目。您無法確定函數內正在使用哪個引用 - 您需要將其作爲參數存儲。

考慮:

$funcs = array(
    "fun_1" => function(){ 
    //want here to get fun_1 name (current array key) 
    echo __KEY__; //echoes "fun_1" 
    } 
); 
$funcs['fun_2']=$funcs['fun_1']; 

什麼你所期望的,當你調用$ funcs'fun_2' 發生?