2015-09-07 2 views
-2

У меня возникли проблемы с использованием нескольких условий 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

+1

В этом нет ничего плохого. – MichaelRushton

+1

Работает отлично [здесь] (https://eval.in/429557). Проверьте источник невидимых символов. – raina77ow

+1

Либо вы не показываете нам свой настоящий код. Или у вас есть какие-то странные символы или что-то в вашем коде – Rizier123

ответ

1

Так что я был прав в комментариях: это (еще один) случай невидимых персонажей. Вот что на самом деле хранится в файле:

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

Как вы видите, в двух местах $a предшествует не с обычным пробелом, но с чем-то еще - особым характером, так называемым Non-breaking space один. Он не визуально отличается от обычного пробела, и он усекается движком StackOverflow, когда вы вставляете код в вопрос. Но это путается, как парсер интерпретирует ваш код - отсюда и ошибка.

+0

Я использую текстовый редактор geany в debian distro – totoaussi

+0

Легко проверить - просто удалите все пробелы после операндов '||' (это позволяет PHP). Тогда я предлагаю запустить «find-and-replace», чтобы заменить все неразрывные пространства нормальным пространством. – raina77ow

+0

Вы правы, потому что код работает с редактором vi – totoaussi

0

Я предполагаю, что это отрывок из вашего кода, и line 5 это (вероятнее всего,) линия с $a="a";. Проверьте до конца {} или отсутствующий ;.

+0

Нет строки 5, если ($ a == "a" || $ a == "b" ...) вы можно загрузить и попробовать: filedropper.com/or – totoaussi

Смежные вопросы