PHP meter una sentencia if dentro de un echo

PHP meter una sentencia if dentro de un echo

Digamos que quieres hacer algo así:

 echo '<option value="'.$value.'"'.if($value=='España') echo 'selected="selected"';.'>'.$value.'</option>';

Esto claro está va a fallar porque no se puede meter sentencias de control dentro de un echo.

Para ello, se puede usar un pequeño truco usando el operador ternary (o ternario) para similar una sentencia if/else. Bueno no simula nada, porque es en sí un operador condicional.

Se define de la siguiente manera “?:”

<?php
// Ejemplo de uso para: Operador Ternario
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];

// Lo anterior es idéntico a esta sentencia if/else
if (empty($_POST['action'])) {
    $action = 'default';
} else {
    $action = $_POST['action'];
}

?>

La expresión (expr1) ? (expr2) : (expr3) evalúa a expr2 si expr1 se evalúa como TRUE y a expr3 si expr1 se evalúa como FALSE.

A partir de PHP 5.3, es posible dejar de lado la parte media del operador ternario. La expresión expr1 ?: expr3 retorna expr1 si expr1 se evalúa como TRUE y expr3 si es de otra manera.

De esta manera ya podremos tener la siguiente lógica en nuestro formulario para verificar si esta seleccionado o no usando una sentencia de control.

echo '<option value="'.$value.'" '.(($value=='España')?'selected="selected"':"").'>'.$value.'</option>';

El operador ternario puede se un poco complejo en algunos casos.

<?php
echo "a string that has a " . (true) ? 'true' : 'false' . " condition in. ";
?>

Imprimirá true.

Para comparar todo el conjunto hacer lo siguiente:

<?php
echo "a string that has a " . ((true) ? 'true' : 'false') . " condition in. ";
?>

Esto evaluará todo el string como se espera: “a string that has a true condition in. ”

Fuente: php.net Operadores de comparación

Tags de búsquedas:

un or o and dentro del if php,php concatenar texto condicional,php concatenar dentro de un if,php concatenacion compleja string,meter select dentro de while php,meter php dentro de un if,insertaR php dentro de un value de un input,insertar echo dentro de if,If sobre if php,if en echo php,if dentro if,php dentro de una if php wordpress,php if dentro de if,string php sentencia,sentencia for en perl

Noticias relacionadas »

3 comentarios en PHP meter una sentencia if dentro de un echo

  1. Alejandro
    / Responder

    Gracias! Me ha ayudado bastante simplificando mi código en la práctica de fin de curso.

  2. / Responder

    Muchas gracias !!! era justo lo que necesitaba… estuve un buen rato intentando con el echo 🙂 no sabía que no se podía ya que no sé mucho php. Con el ternario funcionó perfecto.

  3. David
    / Responder

    gracias me sirvió mucho tu truco

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

10$ gratis con Digital Ocean »

Este blog está funcionando con Digital Ocean,
para todos los lectores 10$ gratis! para probar el cloud a través del siguiente enlace.


Ir a Digital Ocean

¡Comparte este artículo! »

Sígueme en Facebook »

  • sdfgsdf sdfgsdf (2 semanas)
    dsfasd sdfas asdf asdfa asdfasdfafa asdfsdewtr fdsfsdfasfwewesfsd sdf ds
  • sdfgsdf sdfgsdf (2 semanas)
    sdfgsdf sdfgsdfgsdf sdfg
  • Luis (1 mes)
    Hola Pedro, muchas gracias por transmitirnos tu conocimiento. Te comento…
  • Senado.es: Vuelta al año 2000 - Yorokobu (1 mes)
    […] desarrollador Pedro Ventura explica en su blog cómo alternativas…
  • Pedro Ventura (1 mes)
    Hola Edwer La manera de como hacerlo viene explicada en…
  • Rodrigo (1 mes)
    Tengo una duda, como hago para no repetir el tweet?…

Suscríbete al newsletter »

Proporciona tu correo electrónico a continuación y recibe las últimas noticias! Funciona con Feedburner de Google

Archivo »

Leer entrada anterior
Mostrar elementos secuencialmente con Jquery

Desde el siguiente vídeo consejo, podremos aprender como hacer para mostrar los elementos de un listado que aparezcan secuencialmente mediante...

Cerrar