1

我正在学习 Zend Framework 2,在http://framework.zend.com/manual/2.2/en/modules/zend.db.adapter.html的 Zend\Db 文档中,他们有以下代码:

$qi = function($name) use ($adapter) { return $adapter->platform->quoteIdentifier($name);};
$fp = function($name) use ($adapter) { return $adapter->driver->formatParameterName($name); };

我从未见过这种创建函数的代码。

问题是当我将此代码添加到我的班级时,eclipse抱怨

  sytax error: unexpected "function"

当我在我的网站上运行它时,PHP 抱怨

Parse error: syntax error, unexpected 'function' (T_FUNCTION)

使用 php 5.4

所以..他们的文档中有错误吗?还是我在这里遗漏了什么?

谢谢

更新

我的 Eclipse 项目设置为 5.4 版

我的 web 界面 php 版本是 5.5.1,为什么我仍然会收到这些错误?

4

3 回答 3

5

不,这些是匿名函数,并且该代码完全有效。自 5.3 以来,PHP 中存在匿名函数。如果您收到语法错误,则说明您运行的不是PHP 5.3 或更高版本。

于 2013-10-10T09:54:21.377 回答
0

错误在第 1 行吗?你是用FTP上传的吗?

如果是这种情况,您的 FTP 会将所有内容压缩到一行中。

尝试将 FTP 客户端中的传输类型从自动更改为二进制,然后重新上传。

于 2013-10-28T00:45:42.260 回答
0

这对我来说很好:

<?
$adapter = 'y';
$qi = function($name) use ($adapter) { return $adapter->platform->quoteIdentifier($name);};
$fp = function($name) use ($adapter) { return $adapter->driver->formatParameterName($name); };
?>

PHP 5.4.9

较旧的 (<5.4) 版本的 php 不支持这种匿名函数。

于 2013-10-10T09:55:30.347 回答