每个人都遇到语法错误.即使是有经验的程序员也会犯错误.对于新手来说,这只是学习过程的一部分.但是,通常很容易解释错误消息,例如:
PHP Parse错误:语法错误,第20行的index.php中出现意外的'{'
意想不到的符号并不总是真正的罪魁祸首.但是行号给出了从哪里开始寻找的粗略想法.
始终查看代码上下文.语法错误往往隐藏在提及或在前面的代码行.将您的代码与手册中的语法示例进行比较.
虽然不是每个案例都匹配另一个案例 然而,有一些常规步骤可以解决语法错误.这篇文章总结了常见的陷阱:
意外的T_FUNCTION ......
意外T_IF
意外T_FOREACH
意外T_FOR
意外T_WHILE
意外T_DO
意外T_PRINT
意外T_ECHO
意外的T_INLINE_HTML ......
意外的T_PAAMAYIM_NEKUDOTAYIM ......
意外的T_OBJECT_OPERATOR ......
意外的T_DOUBLE_ARROW ......
意想不到的T_SL ......
意外的T_BOOLEAN_OR ...
意外的T_BOOLEAN_AND ......
意外的T_NS_SEPARATOR ......
我正在开发一个程序,它使用PHP的内部数组指针迭代多维数组.我需要从当前行获取一个元素,我一直在这样做:
$arr[key($arr)]['item']
Run Code Online (Sandbox Code Playgroud)
但是,我更喜欢使用类似的东西:
current($arr)['item'] // invalid syntax
Run Code Online (Sandbox Code Playgroud)
我希望有一个功能,我在扫描文档时错过了,这使我能够访问元素,如下所示:
getvalue(current($arr), 'item')
Run Code Online (Sandbox Code Playgroud)
要么
current($arr)->getvalue('item')
Run Code Online (Sandbox Code Playgroud)
有什么建议?
这可能是一个简单的问题,我担心答案可能是"不",但......
这是一段简单的代码:
function func1() {
$bt = debug_backtrace();
print "Previous function was " . $bt[1]['function'] . "\n";
}
Run Code Online (Sandbox Code Playgroud)
现在......这可以在没有临时变量的情况下完成吗?在另一种语言中,我可能会说:
function func1() {
print "Previous function was " . (debug_backtrace())[1]['function'] . "\n";
}
Run Code Online (Sandbox Code Playgroud)
唉,在PHP中,这会导致错误:
PHP Parse error: syntax error, unexpected '[' ...
Run Code Online (Sandbox Code Playgroud)
如果无法完成,则无法完成,我将使用临时变量,但我不愿意.
function get_arr() {
return array("one","two","three");
}
echo get_arr()[0];
Run Code Online (Sandbox Code Playgroud)
为什么上面的代码会抛出以下错误?
parse error: syntax error, unexpected '['
我正在为我的小应用团队的Java代码编写一个小存储库,我的代码中出现了这个错误.
$base = explode(".", $class)[0];
Run Code Online (Sandbox Code Playgroud)
仅此出现该问题的一个每一次的代码行.据我所知,以上是正确的PHP语法,所以发生了什么?
解析错误:语法错误,第27行的.../mitc/code/index.php中的意外'['
如果你想看到错误,请访问http://chancehenrik.x10.mx/mitc/code/和我网站上的其他地方.