PHP 版本 5.2.14 / 解析错误:语法错误,意外的 T_FUNCTION,期待 ')'
我有一段代码试图与 PHP Version 5.2.14 一起使用。是不是不兼容??我运行以下命令,
jailshell-3.2$ php -l /XYZ/functions.php
它给出:
解析错误:语法错误,意外的 T_FUNCTION,在 /XYZ/functions.php 第 2115 行中期待 ')' 解析 /XYZ/functions.php 时出错
代码是:
2114 $range = array_map(
2115 function (DatePeriod $p) use ($vt2) {
2116 $res = array();
I have a certain piece of code that I'm trying to use with PHP Version 5.2.14 . Is it incompatible?? I run the following,
jailshell-3.2$ php -l /XYZ/functions.php
And it gives:
Parse error: syntax error, unexpected T_FUNCTION, expecting ')' in /XYZ/functions.php on line 2115
Errors parsing /XYZ/functions.php
The code is:
2114 $range = array_map(
2115 function (DatePeriod $p) use ($vt2) {
2116 $res = array();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您的代码使用 PHP 支持的
匿名函数
5.3.因此,您需要 PHP 5.3 才能使其正常工作。升级服务器的 PHP 安装。匿名函数,也称为闭包,允许创建没有指定名称的函数。
Your code uses
anonymous functions
which were supported in PHP 5.3. So, you need PHP 5.3 to get it to working. Upgrade your server's PHP installation.Anonymous functions, also known as closures, allow the creation of functions which have no specified name.
您正在使用 匿名函数,这些函数自 PHP 5.3.0 起可用。
要解决此问题,您可以按照其他答案中的建议升级 PHP。
或者,您可以在
array_map
外部定义函数,然后在调用array_map
时使用该函数名称You are using anonymous functions which are available since PHP 5.3.0.
To resolve this you can upgrade your PHP as suggested in other answer.
Alternatively you can define the function outside
array_map
and then use that function name in the call toarray_map
来自 匿名函数 的 php 手册:
5.3.0之前,这样做:
From the php manual on Anonymous Functions:
prior to 5.3.0, do it like this:
我认为 5.2 中尚未实现 lambda 样式函数,
使用 create_function或者只是创建函数并向其传递 array_map 中的函数名称。
I think the lambda style function is not yet implemented in 5.2
use create_function or just create the function and pass it the function name in array_map.