2014-10-31 67 views
4

PHP中使用'use'關鍵字可以使用非匿名函數嗎?或者它僅適用於匿名功能。PHP中使用'use'關鍵字可以使用非匿名函數嗎?

我可以寫一個PHP文件中像這樣

// L.php 
// assume $_texts is in this context.. 

$_language = null; 

function L_init($language) use (&$_language) 
{ 
    $_language = $language; 
} 

function L($key) use ($_texts, $_language) 
{ 
    $_texts[$_language][$key]; 
} 

那麼,另一個文件可以使用它像這樣

// client.php 
require_once 'L.php'; 

L_init('en'); 
echo L('GREETING'); // Will output localize string of key 'GREETING' 
+2

$some_external_var = "World!"; $function = function() use($some_external_var){ echo "Hello ".$some_external_var; }; 

最後你可以調用它你可以簡單地嘗試一下。 :)你會發現答案是:不。 – deceze 2014-10-31 05:18:50

+0

'答案=(代碼編譯沒有語法錯誤?)' – 2014-10-31 05:22:07

+0

謝謝你們。代碼不能編譯,所以答案是:不 – 0angelic0 2014-10-31 06:22:13

回答

-2

你就是不行。

該代碼會生成語法錯誤。

1

它可用於匿名函數,但可以將其分配給一個變量:

call_user_func($function); 

或者只是:

$function();