У меня есть это в моем коде:
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..
Но это тоже не сработало.
Проблема в том, что после каждого «ИЛИ» вам нужно снова выполнить всю проверку:
$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");
}
Вы должны сравнить переменную с каждым значением, например так:
if ($reuqest_id == "736" || $reuqest_id == "015" || $reuqest_id == "629"...) {
Также проверьте это:
Может быть, вы неправильно написали имя переменной: $reuqest_id
кажется странным, я думаю, это должно быть $request_id
Мы не видим, как значение присваивается. Если это целое число, то некоторые сравнения могут привести к FALSE: «015» не совпадает с 015.