5

我有一段代码正在尝试与 PHP Version 5.2.14 一起使用。不兼容吗??我运行以下命令,

jailshell-3.2$ php -l /XYZ/functions.php

它给出了:

解析错误:语法错误,意外的 T_FUNCTION,在第 2115 行的 /XYZ/functions.php 中期待 ')' 解析 /XYZ/functions.php 时出错

代码是:

2114    $range = array_map(
2115                function (DatePeriod $p) use ($vt2) {
2116               $res = array();
4

4 回答 4

6

您的代码使用anonymous functionsPHP 5.3 支持的。因此,您需要 PHP 5.3 才能使其正常工作。升级服务器的 PHP 安装。

匿名函数,也称为闭包,允许创建没有指定名称的函数。

于 2010-09-16T04:40:05.127 回答
4

您正在使用自PHP 5.3.0起可用的匿名函数

要解决此问题,您可以按照其他答案中的建议升级您的 PHP。

或者,您可以在外部定义函数array_map,然后在调用中使用该函数名称array_map

于 2010-09-16T04:40:28.947 回答
3

来自匿名函数的 php 手册:

注意:匿名函数自 PHP 5.3.0 起可用。

在 5.3.0 之前,这样做:

$range = array_map( "name_of_function_to_call", $myArray );
于 2010-09-16T04:43:32.130 回答
1

我认为 lambda 样式功能尚未在 5.2 中实现

使用create_function或只创建函数并将其传递给array_map 中的函数名

于 2010-09-16T04:42:53.530 回答