PHP中的非匿名函数可以使用'使用'关键词?

时间:2014-10-31 05:11:51

标签: php closures

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 个答案:

答案 0 :(得分:2)

它可用于匿名函数,但您可以将其分配给变量:

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

最后你可以用:

调用它
call_user_func($function);

或只是:

$function();

答案 1 :(得分:-2)

不,你不能。

代码生成语法错误。