Могут ли неанонимные функции в 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'
Нет, ты не можешь.
Код генерирует синтаксические ошибки.
Он доступен для анонимных функций, но вы можете назначить его переменной:
$some_external_var = "World!";
$function = function() use($some_external_var){
echo "Hello ".$some_external_var;
};
Наконец, вы можете вызвать его с помощью:
call_user_func($function);
или просто:
$function();