我的问题如下:为了在我的脚本中保持顺序,我总是在if语句中添加大量空格,如下所示:
if( ! isset( $_GET['user'] ) || ! isset( $_GET['user'] ) )
...
虽然一切看起来都是正确的,但这会产生“Unexpected T_STRING ...”等错误。然后我将行更改为:
if(!isset($_GET['user'])||!isset($_GET['user']))
...
保存文件,重新插入空格,再次保存文件,一切正常。有什么想法会导致这种情况吗?它可能是PHP解析器的错误吗?
(这不是具体的声明,它发生在很多这样的空间 - 包括语句)
编辑:我只是设法将文件还原到它不起作用时,这是产生错误的确切代码:
if(! isset( $_GET['user'] ) || ! isset( $_GET['parent'] ) )
我也按顺序更改了每个字符,它似乎是||
和!
之间的空格。
错误消息显示:
Parse error: syntax error, unexpected T_STRING, expecting ',' or ')' in ...
您可以在此处下载文件:http://geardev.de/test.zip
答案 0 :(得分:4)
这看起来像是字符编码问题。我不确定您正在使用的确切字符编码是否会导致此问题,但是当您使用十六进制编辑器打开PHP文件时,您正确识别为导致此问题的空格字符实际上是一个多字节字符\xC2
& \xA0
。所有其他空格字符应为\x20
,因为它们应该是:
<小时/> 修改强>
\xC2A0
是UTF-8编码方式U+00A0
(non-breaking space)。这可能来自浏览器,PDF或高级文本编辑器的复制和粘贴,或者键盘上的 Shift + Space 映射到NBSP。 p>
有人抱怨Netbeans将NBSP随机插入他们的代码中,但我怀疑这是因为用户在输入空格时意外地持有 Shift 。
答案 1 :(得分:1)
唯一可能的答案就是你错了。
抱歉:)问题出在键盘和椅子之间。现在,如果你能够提出一个可重现的错误,我会把它全部收回来。