Símbolo de signo de interrogación en PHP

Subodh Poudel 19 septiembre 2023
  1. Introducción al operador ternario en PHP
  2. Evaluación de expresiones Verdadero y Falso mediante el operador ternario en PHP
Símbolo de signo de interrogación en PHP

En PHP, el operador de interrogación ? se llama operador ternario o operador ternario condicional. Este artículo profundizará en el operador ternario en PHP.

Introducción al operador ternario en PHP

El operador ternario condicional ? también se conoce como expresión condicional o operador ternario. Tiene la siguiente sintaxis:

$variable = (condition) ? value_if_true : value_if_false;

Aquí hay un desglose de los componentes:

  • condición: una expresión booleana que se evalúa.

  • valor_si_verdadero: el valor asignado a $variable si condición es verdadero.

  • valor_si_falso: el valor asignado a $variable si condición es falso.

El operador ternario evalúa condición; si es verdadera, asigna valor_si_verdadero a $variable; de lo contrario, asigna valor_si_falso.

Código de ejemplo:

<?php
$num = 10;
$result = ($num % 2 == 0) ? "Even" : "Odd";
echo "The number $num is $result.";
?>

Salida:

The number 10 is Even.

Podemos usar el operador ternario para sustituir las construcciones if-else para acortar la longitud del código y mejorar la legibilidad. Podemos usarlo para escribir expresiones condicionales más simples.

Código de ejemplo:

<?php
$count = (true) ? 1 : 0;

if (true)
{
    $count = 1;
}
else
{
    $count = 0;
}
echo $count;
?>

Salida:

1

Sin embargo, leer el código cuando encadenamos o anidamos el operador ternario puede requerir esfuerzo. Otro inconveniente del operador ternario es que es difícil depurar el código, ya que no podemos colocar puntos de interrupción en las subexpresiones.

Evaluación de expresiones Verdadero y Falso mediante el operador ternario en PHP

Analizaremos el uso del operador ternario. El siguiente ejemplo evaluará la expresión verdadera y ejecutará el bloque de código correspondiente.

La función canVote() determinará si una persona puede votar o no. Primero, se evalúa la variable $age si es mayor o igual a 18.

Luego, invocamos la función canVote() con el valor 21 como parámetro, que es la edad legal para votar. Aquí, la expresión se evalúa como verdadera y se ejecuta la segunda opción.

Código de ejemplo:

<?php
function canVote($age){
    echo $age>=18 ?"you can vote": "you cannot vote";
}
canVote(21);
?>

La función canVote() determinará si una persona puede votar o no. Primero, se evalúa la variable $age si es mayor o igual a 18.

Luego, invocamos la función canVote() con el valor 21 como parámetro, que es la edad legal para votar. Aquí, la expresión se evalúa como verdadera y se ejecuta la segunda opción.

Salida:

you can vote

En el siguiente ejemplo, si proporcionamos un valor menor que 18, la expresión de comparación se evaluará como falsa. Por lo tanto, se mostrará la tercera expresión, No puedes votar.

Código de ejemplo:

<?php
function canVote($age){
    echo $age>=18 ?"you can vote": "you cannot vote";
}
canVote(17);
?>

Salida:

you cannot vote

En otros casos, la evaluación de la expresión devolverá un valor falso. Por ejemplo, si la expresión devuelve un valor null, Nan, 0 o un valor vacío, la expresión devolverá un valor falso.

El siguiente ejemplo muestra las condiciones del valor falso. El operador ternario ejecutará la tercera expresión cuando se evalúen estos valores.

Código de ejemplo:

<?php
function Car($name){
    echo $name?$name:"no name";
    echo "<br>";
}
Car("Tesla");
Car(null);
Car("");
Car(0);
?>

Salida:

Tesla
no name
no name
no name
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

Artículo relacionado - PHP Operator