2014-10-31 65 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();