Возможный дубликат:
Короткую руку сделать что-то вроде: if ($ variable == 1 || $ variable == "whatever" || $ variable == '492').
Это
if ($a==b||$a==c||$a==$d){ ...
кратчайший способ описать эту логику. Я думаю о чем-то вроде
if ($a==($b||$c||$d)) { ...
но это недействительный код. Какие-либо предложения?
Вы можете использовать in_array :
if( in_array($a, array($b,$c,$d)) ){ //do something }
Это допустимый код, но не логически правильный.
Если у вас много значений, вы можете сделать что-то вроде этого.
if(in_array($a,array($b,$c,$d))) { }
Оба они не такие, как ||
является логическим оператором и всегда будет возвращать true
или false
. Поэтому во втором выражении вы сравниваете, если $a
является true
или false
.
Вы можете использовать in_array
для сравнения, если $a
существует в array($b, $c, $d)
не знаю, почему вы хотите что-то делать, но вы можете поместить b, c, d в массив и вызвать функцию in_array для поиска элементов. Тем не менее я не могу понять, почему вы хотите, чтобы короткий и простой код делался коротким и непростым.