Как мне или «умереть»? в & quot; если & quot ;?

У меня есть это в моем коде:

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..

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

-1

Решение

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

$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");
}
3

Другие решения

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

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

Также проверьте это:

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

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

0

По вопросам рекламы [email protected]