Способ ввести переменные в существующую область закрытия? - PullRequest
2 голосов
/ 12 марта 2011

есть ли способ «вставить» переменную в область замыкания?я пытаюсь сделать что-то вроде этого:

$c = function($x){echo $x.$y;};
$y = 'RLY?';
$c = inject_var($c,$y);
$c('O ');

другой способ может быть таким:

$c = function($x){echo $x.$y;};
$c = extend_paramlist($c,'y');
$c('O ','RLY?');

я думаю Внедрить код в закрытие PHP это способ, но есть более простой способ, так как я просто хочу расширить список параметров замыкания, а не код.Мне известно об использовании (), но я хочу «внедрить» переменную после определения замыкания, и я не хочу выполнять глобальные действия.

1 Ответ

19 голосов
/ 12 марта 2011

Может быть, вам нужно предложение use для замыкания:

$y = 'RLY?';
$c = function($x) use($y) { echo $x.$y; };
$c('O ');

Или, если вы действительно хотите расширить список аргументов, сделайте это правильно:

$c = function($x,$y){ 
        $f = function($x) use($y) {echo $x.$y; };
        $f($x);
     };
$c('O ','RLY?');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...