significa salto que operadores linea concatenar comparacion php variables comparison shorthand

salto - En PHP, ¿hay una forma corta de comparar una variable con varios valores?



salto de linea php (5)

Con caja de interruptor

switch($variable){ case ''one'': case ''two'': case ''three'': //do something amazing here break; default: //throw new Exception("You are not worth it"); break; }

Básicamente, me pregunto si hay una manera de acortar algo como esto:

if ($variable == "one" || $variable == "two" || $variable == "three")

de tal manera que la variable se puede probar o comparar con múltiples valores sin repetir la variable y el operador cada vez.

Por ejemplo, algo como esto podría ayudar:

if ($variable == "one" or "two" or "three")

o cualquier cosa que resulte en menos escritura.


Sin la necesidad de construir una matriz:

if (strstr(''onetwothree'', $variable)) //or case-insensitive => stristr

Por supuesto, técnicamente, esto devolverá verdadero si la variable es twothr , por lo que agregar "delimitadores" podría ser útil:

if (stristr(''one/two/three'', $variable))//or comma''s or somehting else


Usar preg_grep podría ser más corto y más flexible que usar in_array :

if (preg_grep("/(one|two|three)/i", array($variable))) { // ... }

Debido a que el modificador de patrón i opcional (no sensible) puede coincidir con mayúsculas y minúsculas.


in_array() es lo que uso

if (in_array($variable, array(''one'',''two'',''three''))) {


$variable = ''one''; // ofc you could put the whole list in the in_array() $list = [''one'',''two'',''three'']; if(in_array($variable,$list)){ echo "yep"; } else { echo "nope"; }