2015-12-18 1 views
-1

у меня есть это в моем коде:Как мне или «умереть» в «если»?

if($reuqest_id == "736" OR "015" OR "629" OR "260" OR "943" OR "365" OR "331" OR "774" OR "151" OR "452" OR "844" OR "473" OR "850" OR "173" OR "113" OR "067" OR "933" OR "259" OR "617" OR "260" OR "707" OR "256" OR "963" OR "554" OR "344" OR "173" OR "292" OR "478" OR "275") { 
die("Restricted"); 
} 

Тем не менее, всегда умирает, даже когда request_id не соответствует. Я думал, что это потому, что он умер, и он не смог прочитать }, но это кажется странным. Я посмотрел OR DIE, но здесь это не похоже. Я также пробовал это вместо этого:

if($reuqest_id == "736" OR $reuqest_id == "015" OR $reuqest_id == "629" //etc.. 

Но это тоже не сработало.

+2

Вы пробовали '||' вместо 'OR'? –

+0

Используйте '||' вместо 'OR' Edit: @JakeN вы избили меня до него –

+0

@JakeN Я подумал об этом, но я думал, что они такие же. В некоторых онлайн-уроках мне сказали, что если это работает, это плохой учебник. –

ответ

0

Вы должны сравнить переменную с каждым значением, например:

if ($reuqest_id == "736" || $reuqest_id == "015" || $reuqest_id == "629"...) { 

Кроме того, проверить это:

  • Может быть, вы видите неправильно имя переменной: $reuqest_id кажется странным, мой предположим, что это должно быть $request_id

  • Мы не видим, как значение присваивается. Если это целое число, то некоторые сравнения могут привести к FALSE: «015» не то же самое, как 015.

3

Проблема заключается в том, что после каждого «ИЛИ» Вы должны сделать всю проверку еще раз:

$request_id === "736" || $request_id === "015" || $request_id === "629" 
//and so on... 

Чтобы избежать этого, используйте in_array().

$listOfIds = ["736", "015", "629", "260", "943", "365", "331", "774", "151", "452", "844", "473", "850", "173", "113", "067", "933", "259", "617", "260", "707", "256", "963", "554", "344", "173", "292", "478", "275"]; 

if(in_array($request_id, $listOfIds)) { 
    die("Restricted"); 
} 
Смежные вопросы