【发布时间】:2016-09-14 16:31:06
【问题描述】:
我有这个功能
//admin
$router->route['/admin']->route['default'] = function() { //line 51
if (isLoggedIn()) //line 52
goTo('CMS'); //line 53 <---
else //and so on
goTo('login');
};
但是我有一个 Parse 错误:语法错误,意外的 '(',在第 53 行的 /path/index.php 中期待 T_STRING
什么是错误?
【问题讨论】:
-
因为
goto是 PHP 语言结构,而不是函数:php.net/goto。您不能用自己的版本替换/覆盖语言结构,例如function echo($x) { print($x); } echo('hi mom')会产生与您完全相同的错误。 -
但我已经把它装上了驼峰。错误也不同,所以(以我的拙见)这不是问题
-
所以?只有 php 变量名区分大小写。其他大部分都不是。
-
这其实很好笑,因为大小写不符
-
来自文档:
Note: Function names are case-insensitive, though it is usually good form to call functions as they appear in their declaration.- php.net/manual/en/functions.user-defined.php
标签: php parse-error