我有一段代码,我正在尝试使用PHP 5.2.14版。它不兼容吗?我运行以下内容,
jailshell-3.2$ php -l /XYZ/functions.php
它给出了:
第2115行的/XYZ/functions.php中的解析错误:语法错误,意外的T_FUNCTION,期待')' 解析/XYZ/functions.php
的错误
代码是:
2114 $range = array_map(
2115 function (DatePeriod $p) use ($vt2) {
2116 $res = array();
答案 0 :(得分:6)
您的代码使用PHP 5.3中支持的anonymous functions
。因此,您需要PHP 5.3才能使其正常运行。升级服务器的PHP安装。
匿名函数(也称为闭包)允许创建没有指定名称的函数。
答案 1 :(得分:4)
您正在使用自 PHP 5.3.0 以来可用的anonymous functions。
要解决此问题,您可以按照其他答案中的建议升级您的PHP。
或者,您可以在array_map
之外定义函数,然后在调用array_map
答案 2 :(得分:3)
来自Anonymous Functions上的php手册:
在5.3.0之前注意:自PHP 5.3.0起,匿名函数可用。
,这样做:
$range = array_map( "name_of_function_to_call", $myArray );
答案 3 :(得分:1)
我认为lambda样式函数尚未在5.2
中实现使用create_function或只创建函数并将其传递给function name in array_map。