замыкания — Могут ли неанонимные функции в 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'

4

Решение

Нет, ты не можешь.

Код генерирует синтаксические ошибки.

-2

Другие решения

Он доступен для анонимных функций, но вы можете назначить его переменной:

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

Наконец, вы можете вызвать его с помощью:

call_user_func($function);

или просто:

$function();
2