ternario operator operadores operador not expresiones asignacion aritmeticos php switch-statement case

operator - operadores de asignacion en php



¿Cómo usar una caja de conmutadores ''o'' en PHP? (10)

¿Hay alguna forma de utilizar un operador ''OR'' o equivalente en un conmutador php? Por ejemplo, algo como esto:

switch ($value) { case 1 || 2: echo ''the value is either 1 or 2''; break; }


La mejor manera podría ser si no con la solicitud. Además, esto puede ser más fácil y claro de usar.

Ejemplo:

<?php $go = $_REQUEST[''go'']; ?> <?php if ($go == ''general_information''){?> <div> echo "hello"; }?>

En lugar de usar las funciones que no funcionarán bien con PHP, especialmente cuando tienes PHP en HTML.


No volveré a publicar las otras respuestas porque son todas correctas, pero agregaré que no puedes usar el interruptor para declaraciones más "complicadas", por ejemplo: para probar si un valor es "mayor que 3", " entre 4 y 6 ", etc. Si necesita hacer algo como eso, adhiérase a usar sentencias if , o si hay una necesidad particularmente grande para el switch entonces es posible usarlo de nuevo al frente:

switch (true) { case ($value > 3) : // value is greater than 3 break; case ($value >= 4 && $value <= 6) : // value is between 4 and 6 break; }

pero como dije, personalmente usaría una declaración if allí.


Pruebe con los siguientes ejemplos en este artículo: http://phpswitch.com/

Posibles casos de cambio:

(yo). Una declaración de cambio simple

La declaración de cambio es maravillosa y mágica. Es una parte del lenguaje que le permite seleccionar entre diferentes opciones para un valor y ejecutar diferentes piezas de código según el valor que se establezca.

Cada opción posible viene dada por un caso en la declaración de cambio.

Ejemplo:

switch($bar) { case 4: echo "This is not the number you''re looking for./n"; $foo = 92; }

(ii). Delimitar bloques de código

La principal advertencia del cambio es que cada caso se ejecutará en el próximo, a menos que lo detenga con un descanso. Si el caso simple anterior se extiende para cubrir el caso 5:

Ejemplo:

case 4: echo "This is not the number you''re looking for./n"; $foo = 92; break; case 5: echo "A copy of Ringworld is on its way to you!/n"; $foo = 34; break;

(iii) Uso de Fallthrough para casos múltiples

Debido a que el switch seguirá ejecutando el código hasta que encuentre un descanso, es bastante fácil tomar el concepto de Fallthrough y ejecutar el mismo código para más de un caso:

Ejemplo:

caso 2:

case 3: case 4: echo "This is not the number you''re looking for./n"; $foo = 92; break; case 5: echo "A copy of Ringworld is on its way to you!/n"; $foo = 34; break;

(iv). Conmutación avanzada: casos de condición

El cambio de PHP no solo le permite activar el valor de una variable en particular: puede usar cualquier expresión como uno de los casos, siempre que proporcione un valor para el caso que se va a utilizar. Como ejemplo, aquí hay un validador simple escrito usando el interruptor:

Ejemplo:

switch(true) { case (strlen($foo) > 30): $error = "The value provided is too long."; $valid = false; break; case (!preg_match(''/^[A-Z0-9]+$/i'', $foo)): $error = "The value must be alphanumeric."; $valid = false; break; default: $valid = true; break; }

Creo que esto puede ayudarte a resolver tu problema.


Si debes usar || con el switch entonces puedes probar:

$v = 1; switch (true) { case ($v == 1 || $v == 2): echo ''the value is either 1 or 2''; break; }

Si no, su solución preferida hubiera sido

switch($v) { case 1: case 2: echo "the value is either 1 or 2"; break; }

El problema es que ambos métodos no son eficientes cuando se trata de casos grandes ... imagine que de 1 a 100 esto funcionaría perfectamente

$r1 = range(1, 100); $r2 = range(100, 200); $v = 76; switch (true) { case in_array($v, $r1) : echo ''the value is in range 1 to 100''; break; case in_array($v, $r2) : echo ''the value is in range 100 to 200''; break; }


Te sugiero que vayas a través de http://php.net/manual/en/control-structures.switch.php (manual)

switch ($your_variable) { case 1: case 2: echo "the value is either 1 or 2."; break; }

explicación

Al igual que para el valor de lo que se debe ejecutar declaración única, puede colocarlo sin interrupción hasta que, a menos que se encuentre break, continuará ejecutando el código y si se encuentra break, saldrá de la caja del switch.


Tratar

switch($value) { case 1: case 2: echo "the value is either 1 or 2"; break; }


usa este código:

switch($a) { case 1: case 2: ....... ....... ....... break; }

el bloque requería ambos, 1 y 2.


http://php.net/manual/en/control-structures.switch.php Ejemplo

$today = date("D"); switch($today){ case "Mon": case "Tue": echo "Today is Tuesday or Monday. Buy some food."; break; case "Wed": echo "Today is Wednesday. Visit a doctor."; break; case "Thu": echo "Today is Thursday. Repair your car."; break; default: echo "No information available for that day."; break; }


switch ($value) { case 1: case 2: echo "the value is either 1 or 2."; break; }

Esto se llama "atravesar" el bloque de casos. El término existe en la mayoría de los lenguajes que implementan una instrucción switch.


switch ($value) { case 1: case 2: echo ''the value is either 1 or 2''; break; }