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 *

Comprar Bitcoin: »

Invertir y comprar Bitcoin y otras altcoins es más fácil de lo que crees.

1) Si sólo quieres comprar Bitcoin, Ethereum o Litecoin como inversión, tu opción es Coinbase

2) Si quieres probar con otras criptomonedas tu opción es Kucoin o Binance

3) Cualquier duda escríbeme con total libertad al formulario de contacto para resolver dudas: https://www.pedroventura.com/contacto/

Ir a CoinBase
Ir a Kucoin
Ir a Binance

¡Comparte este artículo! »

Sígueme en Facebook »

  • Maximo Aliff (9 horas)
    Saludos.. Muchas gracias por la información. Te escribo para hacerte…
  • balta (2 semanas)
    Aca les dejo otro grupo de telegram donde son realmente…
  • Mauro (3 semanas)
    gracias!
  • junior (4 semanas)
    hola como ubico la carpeta en ubuntu para editar
  • Alfredo (1 mes)
    Alguien puede ayudarme con java script.. Como puedo hacer un…
  • www.camperbaos.es (1 mes)
    Gracias por el post. Una información muy interesante. Saludos! :)

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