Могут ли не-анонимные функции в 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();