У меня возникла проблема с вызовом анонимного метода в другом анонимном методе.Один анонимный вызов метода другим методом в php
<?php
$x = function($a)
{
return $a;
};
$y = function()
{
$b = $x("hello world a");
echo $b;
};
$y();
?>
Ошибка:
Notice: Undefined variable: x in C:\xampp\htdocs\tsta.php on line 7
Fatal error: Function name must be a string in C:\xampp\htdocs\tsta.php on line 7
Спасибо @arbogast, но если в $ y возвращается несколько нет. массивов, но я хочу получить доступ только к определенному массиву, как это сделать? например: var_dump ($ y); и вывод: object (Closure) # 3 (2) {["static"] => array (3) {["a"] => & array (2) {["foc"] => int (2), ["roc"] => int (4)} ["c"] => & array (2) {["foc"] => int (2), ["roc"] => int (4)} [ a "] => & array (2) {[" foc "] => int (2), [" roc "] => int (4)} i доступ к массиву 'b' в моем случае. Надеюсь, ты поймешь. Спасибо – Albertestein
@Albertestein Я не совсем понимаю вас. В вашем примере функция $ y ничего не возвращает, нет оператора return, поэтому он возвращает NULL по умолчанию. – arbogastes
К сожалению, у меня есть некоторые изменения в коде, я упоминаю это. Php $ arr = array (1,2,3,4,5,6); $ x = function ($ a) use ($ arr) { $ tst = $ arr [$ a]; return $ tst; }; $ y = function() use ($ x) { $ b = $ x (2); // echo $ b; }; $ y(); var_dump ($ y); Вывод: объект (закрытие) # 2 (1) {["static"] => array (1) {["x"] => объект (закрытие) # 1 (2) {["static"] => массив (1) {["arr"] => array (6) {[0] => int (1) [1] => int (2) [2] => int (3) [3] => int (4) [4] => int (5) [5] => int (6)}} ["parameter"] => array (1) {["$ a"] => string (10) ""}}} } ... – Albertestein