¿Qué significa esta sintaxis (page = $page? $page: ‘default’) en PHP?

3 minutos de lectura

avatar de usuario
broma

Soy nuevo en PHP. Encontré esta sintaxis en WordPress. ¿Qué hace la última línea de ese código?

$page = $_SERVER['REQUEST_URI'];
$page = str_replace("https://stackoverflow.com/","",$page);
$page = str_replace(".php","",$page);
$page = $page ? $page : 'default'

  • ¡guau! respuestas abrumadoras .. 🙂 gracias

    – broma

    20 de enero de 2010 a las 8:37

  • posible duplicado de Referencia – ¿Qué significa este símbolo en PHP?

    – fuera

    1 de abril de 2012 a las 5:54

avatar de usuario
eco

Eso es el operador ternario:

Esa línea se traduce como

if ($page)
    $page = $page;
else
    $page="default";

  • ¿Qué quiere decir con “el operador condicional”. ¿No querrá decir “el operador ternario” (uno de los operadores condicionales)s)?

    -Peter Mortensen

    14 de diciembre de 2015 a las 18:22


  • Escribí “operador ternario” originalmente. @Ether lo editó y lo cambió a “condicional”. Curioso.

    – eco

    22 de diciembre de 2015 a las 15:49

  • “el operador ternario” es ambiguo porque puede haber más de uno.

    – Éter

    23 de diciembre de 2015 a las 18:33

  • Los documentos parecen no estar de acuerdo: “Otro operador condicional es el operador”?:” (o ternario)”.

    – eco

    23 de diciembre de 2015 a las 21:49

avatar de usuario
Tazas

Es un ejemplo del operador condicional en PHP.

Es la versión abreviada de:

if (something is true ) {
    Do this
}
else {
    Do that
}

Ver Uso de operadores ternarios If/Else
http://php.net/manual/en/language.operators.comparison.php
.

avatar de usuario
cenefa

Es un operación ternaria que no es específico de PHP o WordPress, existe en la mayoría de los idiomas.

(condition) ? true_case : false_case 

Entonces, en este caso, el valor de $page será “predeterminado”, cuando $page sea algo similar a falso; de lo contrario, permanecerá sin cambios.

avatar de usuario
Wallyk

Significa que si $page no tiene un valor (o es cero), configúrelo como ‘predeterminado’.

avatar de usuario
Sarfraz

Significa que si la variable $page no está vacía, entonces asigne la variable $page en la última línea de esa variable o configúrela en el nombre de página ‘predeterminado’.

se llama operador condicional

  • esta mal llamado la operador ternario donde realmente es solo un operador ternario. De acuerdo, en la mayoría de los idiomas es el único operador ternario implementado, pero eso no impide la creación de otros operadores que toman 3 argumentos. Un lenguaje podría, por ejemplo, tener un operador para declarar funciones, muy parecido al de Forth. : operador, que opera en el nombre de la función, la lista de parámetros y el bloque de código. Eso también sería un operador ternario.

    – durmiente

    20 de enero de 2010 a las 8:46

  • ¿”Operador condicional”? ¿No querrás decir “operador ternario”?

    -Peter Mortensen

    14 de diciembre de 2015 a las 18:26

avatar de usuario
Pedro Mortensen

La sintaxis más detallada de la última línea es:

if ($page)
{
    $page = $page;
}
else
{
    $page="default";
}

  • esta mal llamado la operador ternario donde realmente es solo un operador ternario. De acuerdo, en la mayoría de los idiomas es el único operador ternario implementado, pero eso no impide la creación de otros operadores que toman 3 argumentos. Un lenguaje podría, por ejemplo, tener un operador para declarar funciones, muy parecido al de Forth. : operador, que opera en el nombre de la función, la lista de parámetros y el bloque de código. Eso también sería un operador ternario.

    – durmiente

    20 de enero de 2010 a las 8:46

  • ¿”Operador condicional”? ¿No querrás decir “operador ternario”?

    -Peter Mortensen

    14 de diciembre de 2015 a las 18:26

avatar de usuario
Éter

Eso es lo que se llama operador condicional. Funciona como una sentencia if-else, por lo que

$page = $page ? $page : 'default';

hace lo mismo que

if($page)
{
    $page = $page;
}
else
{
    $page="default";
}

  • La referencia dice que es el operador ternario (¿o un operador ternario?), uno de los operadores condicionales. ¿Puedes elaborar?

    -Peter Mortensen

    14 de diciembre de 2015 a las 18:27

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad