我有一个非常简单的IF声明......
if ($key == "listingURL" or
$key == "interiorColor" or
$key == "engine" or
$key == "transmission" or
$key == "stockNumber" or
$key == "VIN") {
// Do thing
}
但我收到了错误......
[2015年4月23日13:12:01 UTC] PHP解析错误:语法错误,意外 第xxx行xxx中的T_VARIABLE
这是哪一行...
$key == "stockNumber" or
OR的最大数量是否有限制,或者我是否遗漏了一些直接盯着我的东西?
答案 0 :(得分:23)
“OR的最大数量是否有限制,或者我错过了正确地看着我的东西?”
不,没有。原因是因为你有一个隐藏的角色:
$key == "transmission" or ? <= right there
哪个是
成为Unicode ZERO WIDTH NO-BREAK SPACE字符。
重写:
if ($key == "listingURL" or
$key == "interiorColor" or
$key == "engine" or
$key == "transmission" or
$key == "stockNumber" or
$key == "VIN") {
// Do thing
}
<强>图片的标题说明:强>
来自comments:
我会在时间限制结束后立即确认这是正确的答案!非常感谢你的帮助。我使用Sublime Text 3,是否有一些简单的方法来检测这些隐藏的字符? - SoWizardly 19分钟前
对于Notepad++
,有一个名为HEX-Editor
的插件。
您可以通过以下方式下载:Extensions - &gt;插件管理器 - &gt;可用。只需选中HEX-Editor
的组合框,然后点击安装即可。在此之后,您可以将文件视图更改为十六进制。
对于Sublime Text
,还有一个plugin,它也是如此。
答案 1 :(得分:2)
当我在其他编辑器中复制时,我得到了这个 将它移到库存号码附近? &LT =
if ($key == "listingURL" or
$key == "interiorColor" or
$key == "engine" or
$key == "transmission" or
$key == "stockNumber" or ? <=
$key == "VIN") {
// Do thing
}
答案 2 :(得分:0)
尝试这样的事情
$arr = array("listingURL","interiorColor","engine","transmission","stockNumber","VIN");
if(in_array($key, $arr))
{
// do something
}
这是更有效的做事方式
答案 3 :(得分:0)
评论副本: 一个建议:使用in_array或其他方法根据多个值检查变量的值:
$values = array( 'listingURL', 'interiorColor');
if ( in_array( $key, $values) ) { //do stuff
答案 4 :(得分:0)
从$key == "transmission" or ? <=
? <=` This causes the problem