使用多个 `or` 条件解析错误

Parse error using multiple `or` conditions

我在使用多个 or 条件时遇到问题。

代码在这里,很简单:

<?php

$a = "a";

if($a == "a" || $a == "b" || $a == "c" || $a == "d" || $a == "e")
{echo "test";}

?>

但是 PHP 显示此错误:

Parse error: syntax error, unexpected '$a' (T_VARIABLE) in /home/guest/public_html/or.php on line 5

我假设这是您的代码的摘录,line 5(很可能)是 $a="a"; 所在的行。检查该行之前是否存在不完整的 {} 或缺失的 ;

所以我在评论中是对的:这是一个(又一个)隐形角色案例。以下是您的文件中实际存储的内容:

if($a == "a" ||\u00A0$a == "b" ||\u00A0$a == "c" || $a == "d" || $a == "e")

如您所见,$a 前面有两个地方不是普通空格,而是其他字符 - 一个特殊字符,即所谓的 Non-breaking space 字符。它在视觉上与普通空格没有区别,当您将代码粘贴到问题中时,它会被 Whosebug 引擎截断。但这会扰乱解析器解释您的代码的方式 - 因此会出错。