Php 嵌套匿名函数
我正在尝试编写一些嵌套的PHP匿名函数,其结构如下图所示,我的问题是:如何使其正常工作而不出错Php 嵌套匿名函数,php,Php,我正在尝试编写一些嵌套的PHP匿名函数,其结构如下图所示,我的问题是:如何使其正常工作而不出错 $abc = function($code){ $function_A = function($code){ return $code; }; $function_B = function($code){ global $function_A; $text = $function_A($code); retur
$abc = function($code){
$function_A = function($code){
return $code;
};
$function_B = function($code){
global $function_A;
$text = $function_A($code);
return $text;
};
$function_B($code);
};
echo $abc('abc');
输出为致命错误:此行中的函数名必须是字符串:
$text = $function_A($code);
这条消息没有对我说什么:(这里的问题是您的
$function\u A
不在全局范围内定义,而是在$abc
范围内定义。如果您愿意,您可以尝试使用使用将$function\u A
传递到$function\u B
的范围内:
$abc = function($code){
$function_A = function($code){
return $code;
};
$function_B = function($code) use ($function_A){
$text = $function_A($code);
return $text;
};
$function_B($code);
};
在PHP中,要将非$this
和超全局变量传递到匿名闭包中,必须使用use
语句
<?php
$abc = function($code){
$function_A = function($code){
return "Code: {$code}";
};
$function_B = function($code) use ($function_A) {
$text = $function_A($code);
return $text;
};
return $function_B($code);
};
echo $abc('abc');
$function\u A
未在全局范围内定义。$function\u A
在外部函数的局部变量范围内定义,而不是全局范围。另请参见