我正在学习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版
我的网页界面php版本是5.5.1,为什么我仍然会收到这些错误?
答案 0 :(得分:5)
不,那些是anonymous functions,而且代码完全有效。自5.3以来,PHP中存在匿名函数。如果您收到语法错误,则不运行PHP 5.3或更高版本。
答案 1 :(得分: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不支持这种匿名函数。
答案 2 :(得分:0)
第1行的错误是?你是用FTP上传的吗?
如果是这样,您的FTP就会将所有内容压缩成一行。
尝试将FTP客户端中的传输类型从自动更改为二进制,然后重新上传。