Los shortcodes incluidos en WooCommerce

Los shortcodes incluidos en WooCommerce

Post recuperado de KnowHow…

Valencia, 24/04/2016
WooCommerce dispone de varios shortcodes incluidos que podemos utilizar en nuestra tienda online creada con la plataforma gratuita de e-commerce para WordPress. Podemos utilizarlos añadiendo el shortcode a la página que queramos o incluyendo el código PHP, como más nos interese.

WooCommerce comes with several shortcodes that can be used to insert content inside posts and pages. The following shortcodes are inserted into pages upon installation and should not need to be used anywhere else.

Continuar leyendo “Los shortcodes incluidos en WooCommerce”

Cambiar la versión de PHP en los hosting de 1and1

Post recuperado de KnowHow…

Rápido, si no quieres que te cobren!!

Valencia, 30/05/2016, G.B.
Hoy me ha llamado una amiga comentándome que 1and1 le había cobrado un suplemento por mantener la versión PHP 5.4 en su hosting. Y eso es por cada dominio que tengas con algún gestor de contenido que necesite PHP, como por ejemplo WordPress, PrestaShop, etc. 
Para cambiar la versión de PHP tan solo tienes que acceder al Panel de control de tu hosting en 1and1, elegir la opción Ajustes de PHP y establecer una versión superior en cada uno de las webs (incluidos los subdominios) en los que tengas instalado un gestor de contenidos moderno. 
Probablemente la versión de PHP 5.6, la recomendada, sea la más adecuada. a no ser que utilices un gestor de contenidos personalizado, todos los scripts funcionarán correctamente, y en el caso de que no lo hagan, tan solo tendrás que desactivar algún que otro plugin o módulo obsoleto.

Esta es la información que nos da 1and1 al respecto:

Configurar versión PHPUtilice una versión PHP actual para su dominio, que le ofrezca una combinación óptima entre fiabilidad, compatibilidad, rendimiento, seguridad y funcionalidad.Para todos aquellos que quieran o tengan que continuar usando una versión más antigua de PHP sin el apoyo de la comunidad, pueden contar con el Soporte ampliado para PHP de 1&1. Más información sobre versiones soportadas de PHP y 1&1 Soporte ampliado

Os dejo un par de capturas de pantalla al respecto:

Cómo comprimir tu web con GZip y comprobarlo

Un post rápido sobre la compresión de sitios webs y la gestión de la caché

Cómo comprimir tu web con GZip y comprobarloValencia, 09/12/2013, G.B.
Continuando con el tema de la compresión de sitios web utilizado GZip para que cargue más rápido y consumir meos ancho de banda, he probado una herramienta online  de la web GIDNetwork, denominada GIDZip Test; esta es la dirección: www.gidnetwork.com/tools/gzip-test.php. En ella, añadimos la URL de nuestra web y podremos comprobar si está o no comprimida con GZip.

En el caso de que no lo esté, podremos comprimirla añadiendo ‘un poco’ de código PHP a nuestras páginas, o en el caso de WordPress, a uestro archivo de cabecera o header.php. Para ello, visita esta página:
www.gidblog.com/2000/12/compress-your-web-page.

Este es el código PHP a incluir en la cabecera de tu WordPress o web bajo la tecnología PHP:

<?php
ob_start( 'ob_gzhandler' );
?>

Deciros también que en algunos temas o plantillas de WordPress no os funcione, ni siquiera utilizando habilitando la compresión GZip desde la página de opciones de tu WordPress: www.tusitioweb.com/wp-admin/options.php (busca GZip y cambia el valor 0 por 1). ¿Por qué? Pues en mi caso creo que ha sido debido a que una de las webs en concreto ya tiene un código PHP en la cabecera.

Cambio en la página options.php de vuestro WordPress:

También podemos añadir un código a nuestro archivo .htaccess (el de directiva del servidor Apache),  en el cual tenemos alojada nuestra web. Podéis leer más información al respecto en el sitio (estupendo y muy útil, por cierto) Ayudawordpress. En concreto, en este post: Cómo habilitar la compresión Gzip en WordPress sin utilizar plugins. Alguos plugis, como WP Fastest Cache, ya incluyen un código en el archivo .htaccess y te permiten elegir si quieres o no utilizar la compesión GZip. Debo deciros que me ha sido mucho más útil el código PHP en la cabecera de mi sitio…

Por último, comentar que algunos plugins no se ‘llevan’ muy bien con el código PHP de compresión; así me ha ocurrido con Quick Cache en uno de los sitios. ¿La solución? He sustituido el plugin de control de caché por WP Super Cache. Con ello, he solucionado el problema de la compresión GZip en un par de sitios. En otro de ellos, a pesar de haber probado todas las opciones posibles, no ha habido forma. Sospecho que es debido al código PHP de cabecera incorporado en el tema y que ‘no se lleva nada bien’ con el código de compresión anteriormente citado…

En fin, nada es perfecto, ¿verdad? Si alguien tiene algo que comentar al respecto o alguna posible solución, los comentarios serán muy bien venidos. De todas formas, seguiré probando cosas. Hasta pronto!

Un formulario de contacto en HTML y PHP

Abril 2016: Post recuperado de Aprendiendo PHP (web ya inactiva)

Valencia, 17/07/2013, G.B.
Aunque un tanto ‘alejado’ de la ‘marcha’ habitual de Aprendiendo PHP antes de su parada, voy a seguir incluyendo pequeñas ‘utilidades’, códigos que os pueden servir. Más adelante volveré con la ‘temática’, el orden que he pensado seguir en este blog. Pero ahora mismo, y tras el re-arranque la semana pasada de Aprendiendo PHP, me apetece ir por este camino, aunque un poco más adelante vuelva a la ‘normalidad’.

Sin más, paso a dejaros un pequeño sistema de formulario de contacto con HTML y PHP. Consta de 3 archivos, uno en HTML y 2 en PHP:

  • contacta.html (la página del formulario propiamente dicha)
  • enviar_correo.php (el código PHP del formulario)
  • enviado.php (la página que nos indica si ha habido algún error o todo ha ido bien)

Este ‘sistema’ lo leí en un tutorial que ahora mismo no recuerdo, pero que buscaré e incluiré aquí como referencia. Lo utilizo desde hace ya algún tiempo en un par de webs; en concreto en un par de directorios de enlaces. el de INDAGA.net y el de Webcontenidos.es. Funciona perfectamente. tan solo le he añadido algunas pequeñas variaciones, si no recuerdo mal. Bien, veamos como funciona:

Primero creamos un archivo HTML y lo denominamos, por ejemplo, contacta.html. Os adjunto el código. Por supuesto, deberéis cambiar todas las referencias a esta web, así como las URLs absolutas que adjunto y que hacen referencia a este sitio (www.aprendiendophp.net):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Contactar con AprendiendoPHP.net </title>
<meta name="title" content="AprendiendoPHP.net" />
<meta http-equiv="title" content="AprendiendoPHP.net" />
<meta name="keywords" content="aprender php. aprendiendo php, php, guillermo beltran pilato" />
<meta http-equiv="description" content="Aprendiendo PHP" />
<meta name="author" content="Guillermo Beltr⮠Pilato" />
<meta name="distribution" content="all" />
<meta name="robots" content="all" />
<meta name="revisit" content="30 days" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="http://www.aprendiendophp.net/wp-content/themes/deepblue/style.css" />
<link href="http://www.aprendiendophp.net/favicon.ico" rel="shortcut icon" />
<meta name="description" content="Contactar con Aprendiendo PHP">
</head>
<body>
<div align="center">
<form action="enviar_correo.php" method="post">
<p>
<br />
<b>Tu Nombre:<b>
<input name="name" type="text" id="name" size="40" />
</p>
<p><b>Tu email:</b>
<input name="email" type="text" id="email" size="42" />
</p><br />
<p>
<b> Escribe tu mensaje o consulta:</b>
</p>
<textarea name="query" cols="46" rows="20" id="query"></textarea>
<p>
<input name="submit" type="submit" class="boxx1" value="Enviar mensaje" />
</p>
</form>
<!-- <p align="center"> Si el correo se ha enviado correctamente, <br />volver&aacute;s a la p&aacute;gina principal del directorio</p><br /><br /> -->
<p><a href="http://www.aprendiendophp.net" alt="AprendiendoPHP.net">www.aprendiendophp.net</a>
</div>
</body>
</html>
Como podéis observar, en este código HTML, además de los meta tags, vemos un formulario cuya acción al enviarlo nos remite a la página: enviar_correo.php. Este es el código PHP de la página, que es la que hace que funcione el formulario:
<?
/* Para AprendiendoPHP.net */
$mailto = 'tuemail@direccioncorreo.com'; // PON AQUÍ TU DIRECCIÓN DE CORREO ELECTRÓNICO, DONDE QUIERES QUE TE LLEGUE EL CONTACTO
$returnpage = 'http://www.aprendiendophp.net/enviado.php'; // INSERTA AQUÍ LA PÁGINA A LA QUE QUIERES QUE VUELVA EL USUARIO TRAS ENVIAR EL CONTACTO
$sitename = '[AprendiendoPHP.net - Contacto]'; // INSERTA AQUÍ EL NOMBRE DE TU SITIO; APARECERÁ EN EL ASUNTO DEL EMAIL QUE RECIBAS
/* NO EDITES NADA TRAS ESTAS LÍNEAS, A NO SER QUE SEPAS LO QUE ESTÁS HACIENDO */

$name = $_POST['name'];
$email = $_POST['email'];
$enquiry = stripslashes($_POST['query']);

if (!$name) {
print("<strong>Error:</strong> Escribe tu nombre.<br/><br/><a href='javascript:history.go(-1)'>Volver</a>");
exit;
}

if (!$email) {
print("<strong>Error:</strong> Por favor, escribe tu direcci&oacute;n de e-mail.<br/><br/><a href='javascript:history.go(-1)'>Volver</a>");

exit;

}

if (!$enquiry) {
print("<strong>Error:</strong> Por favor, escribe un mensaje.<br/><br/><a href='javascript:history.go(-1)'>Volver</a>");

exit;

}

if (!eregi("^[a-z0-9]+([-_.]?[a-z0-9])+@[a-z0-9]+([-_.]?[a-z0-9])+.[a-z]{2,4}", $email)){

print("<strong>Error:</strong> Este email no es v&aacute;lido, por favor escribe una direcci&oacute;n de e-mail v&aacute;lida<br/><br/><a href='javascript:history.go(-1)'>Volver</a>");

exit;

}

$message = "n$name te ha enviado el siguiente mensaje:nn$enquirynn Sus datos son:nnNombre: $namenCorreo: $emailnn";

mail($mailto, "$sitename Petición de contacto de $name", $message, "From: $email");

header("Location: " . $returnpage);

?>
Una vez el usuario ha cumplimentado los campos de nuestro formulario en HTML (la página contacta.html) y enviado así la petición de contacto, el archivo enviar_contacto.php se encargará de validar la petición y enviarla al correo que le hayamos determinado a través de la función $mailto. Si todo es correcto, la página enviado.php será la encargada de decir al usuario si todo ha ido bien o si ha habido algún error. Este es el código de dicha página:
<?php 
echo '<h3>Su mensaje se ha enviado satisfactoriamente</h3>';
echo '<p>En breve contactaremos con usted. Muchas gracias por su inter&eacute;s</p>';
echo '<p><a href="http://www.aprendiendophp.net" target="_self">Volver a la Home</a> de AprendiendoPHP.net</p>';
?>
Y con estos 3 archivos, ya tenemos montado nuestro formulario de contacto con validación incluida.  Podéis comprobarlo aquí: Contactar con Aprendiendo PHP. Eso sí, el tema de los formularios en PHP lo veremos más adelante, esto solo era un pequeño ‘adelanto’, valga la redundancia…
Hasta pronto!

Un ejemplo del uso de condicionales en WordPress

Abril 2016: Post recuperado de Aprendiendo PHP (web ya inactiva)
Valencia, 15/07/2013, G.B.
Vamos a ver un pequeño ejemplo del uso de las instrucciones condicionales en PHP aplicadas al (maravilloso) gestor de contenidos WordPress.

En este caso, vamos a mostrar un determinado mensaje o elemento en determinadas páginas de nuestro blog en WordPress. Para ello, utilizaremos una sentencias If que ya conocemos y haremos que se muestre el código que decidamos, como por ejemplo un mensaje o un ‘trozo’ de código HTML, en la barra lateral de nuestro blog (archivo sidebar.php) siempre y cuando no sea la página principal. Como ejemplo sencillo, vamos a crear un texto en H2 en nuestra barra lateral que contenga lo siguiente:

Esto solo se muestra en el sidebar si no es la página principal

Tendremos que modificar nuestro archivo sidebar.php. El código, que añadiremos es muy sencillo:

<?php if (!(is_home() )) { ?>
<h2> Esto solo se muestra en el sidebar si no es la página principal</h2>
<?php } ?>

 Para más información al respecto, visita el Codex de WordPress: http://codex.wordpress.org/Conditional_Tags

Un ejemplo del uso de condicionales en WordPress

Valencia, 15/07/2013, G.B.
Vamos a ver un pequeño ejemplo del uso de las instrucciones condicionales en PHP aplicadas al (maravilloso) gestor de contenidos WordPress.

En este caso, vamos a mostrar un determinado mensaje o elemento en determinadas páginas de nuestro blog en WordPress. Para ello, utilizaremos una sentencias If que ya conocemos y haremos que se muestre el código que decidamos, como por ejemplo un mensaje o un ‘trozo’ de código HTML, en la barra lateral de nuestro blog (archivo sidebar.php) siempre y cuando no sea la página principal.

Como ejemplo sencillo, vamos a crear un texto en H2 en nuestra barra lateral que contenga lo siguiente:

Esto solo se muestra en el sidebar si no es la página principal

Tendremos que modificar nuestro archivo sidebar.php. El código, que añadiremos es muy sencillo:

<?php if (!(is_home() )) { ?>
<h2> Esto solo se muestra en el sidebar si no es la página principal</h2>
<?php } ?>

 Para más información al respecto, visita el Codex de WordPress: http://codex.wordpress.org/Conditional_Tags

Averiguar la versión de PHP de tu servidor web

Otro post para ayudar al re-arranque de Aprendiendo PHP…

Valencia, 13/07/2013, G.B.
Bueno, aquí va otro post para poner de nuevo ‘en el mapa’ a Aprendiendo PHP… En este caso se trata de algo de lo que ya hemos hablado, aunque todavía no había puesto un ejemplo práctico. Se trata de averiguar la versión de PHP de tu servidor (así como otros parámetros…), para poder ajustar tu código a la misma. Para ello, simplemente debemos crear un archivo .php con un pequeño código PHP y subirlo a nuestro servidor. El código del archivo  PHP es el siguiente:

<?php
phpinfo();
?>

 Yo he creado una página .ph p con ese código y la he subido al directorio raíz de mi sitio, de mi hosting. Al escribir la URL http://www.aprendiendophp.nes/phpInfo.php obtendré una página interpretada que me mostrará la versión de PHP qu utiliza mi servidor.

Haced la prueba y podréis comprobarlo por vosotros mismos. Hasta pronto!

Iniciando el tema de Smarty

Iniciando el tema de SmartyQuiero iniciar una sección en este blog de INDAGA,net sobre la tecnología Smarty, utilizada en varios y conocidos CMS o gestores de contenidos como Joomla!, PHPLD (como el directorio de INDAGA.net) y PrestaShop, por poner solo algunos ejemplos significativos (y que yo tengo que trastear, quiera o no). El sitio oficial de Smarty es www.smarty.net.

¿Y qué es Smarty? Smarty es un Template Engine, una librería que nos permite separar el diseño del código en nuestra página web, algo esencial para hacerla mucho más flexible, potente y fácil de mantener. También podemos describirlo como un motor compilador de plantillas para PHP. Obviamente,  para poder usar la tecnología Smarty es necesario que nuestro servidor web soporte el lenguaje de script PHP. La inmensa mayoría de los hosting webs actuales soportan PHP y MySQL bajo el servidor de código libre Apache, así que tranquilos. La extensión de los archivos de Smarty es .tpl, abreviatura o acrónimo de Template Library.

Si instalamos algún gestor de contenidos como los anteriormente mencionados, Smarty ya estaré listo para ser utilizado. Pero si quisiéramos utilizarlo sin un gestor de contenidos en el cual ya está incluido, podríamos hacerlo perfectamente descargando la librería de Smarty de forma gratuita en la siguiente dirección: www.smarty.net/download.

El manual oficial de Smarty en castellano lo tenéis en la siguiente dirección: www.smarty.net/docsv2/es y una lectura que os recomiendo para empezar a conocer a Smarty es la siguiente: Tutorial introducción a Smarty.

Por mi parte, iré tratando el tema de Smarty en este mismo blog, ya que lo necesito tanto para el directorio de enlaces como para futuras webs. Además, el saber no ocupa lugar, al menos eso dicen…

Instrucciones iterativas en PHP (II): bucles Foreach (I)

Estructuras de control de flujo en PHP

Valencia, 25/10/2012, G.B.
La siguiente instrucción iterativa en PHP que vamos a ver es el bucle foreach. Foreach nos permite iterar o ‘enunciar’ cada elemento de una matriz, vectorarray. En otras palabras, nos permite ‘recorrer’ todos los datos de una matriz, array o vector.

La diferencia entre el bucle For y el bucle Foreach es que cuando se utiliza el bucle foreach se ejecuta todo lo que está escrito en la instrucción iterativa, sin tener en cuenta ningún contador. En cambio, al utilizar el bucle for, se realizan las instrucciones un determinado número de veces, dependiendo del contador: “hazlo X veces”.  Así, en las instrucciones foreach no se pueden producir errores, siempre y cuando estén bien escritas, claro.

El bucle foreach tiene dos usos:
1) Mostrar todos los datos de un array
2) Mostrar un valor concreto del array

La sintáxis de foreach del primer uso (1), para recorrer y mostrar todos los datos de la matriz o  array es:

identificador de la matriz o vector; expresión con el operador ‘as’; variable que identifica cada uno de los elementos de la matriz; sentencias o instrucciones a realizar:


O lo que es lo mismo: 

foreach (array as $valor) {
instrucción;
}

Veámoslo con un sencillo ejemplo que recorre todos los valores de la matriz o array y los imprime con la instrucción echo, añadiendo un salto de línea en HTML (<br />) tras cada uno de los elementos recorridos y mostrados de la matriz $colores:

<?php
$colores = array("blanco", "azul", "verde manzana", "salmón");
foreach ($colores as $pintura) {
echo "Color: <b>$pintura</b><br />";
}
?>

Ejecutar ejemplo

El segundo uso de foreach (2) es para mostrar un determinado valor de la matriz. Pero será en el próximo post, y con más ejemplos…

Lecturas recomendadas:
foreach (PHP Manual)
Foreach PHP

Instrucciones iterativas en PHP: bucles For

Estructuras de control de flujo en PHP

Valencia, 02/10/2012
El lenguaje PHP dispone también de un tipo instrucciones llamadas iterativas o de repetición ‘heredadas’  del lenguaje C. Son los conocidos ‘bucles‘, instrucciones que realizan una determinada acción un número determinado de veces que se especifica a través de un contador. Es como si diéramos cuerda a una instrucción para que se realice hasta que finalice el contador que hemos especificado, el ‘paso’, por llamarlo de algún modo. Se llaman bucles porque se repiten hasta que la condición deja de cumplirse, o lo que es lo mismo, se evalúa como falsa (FALSE).

Las instrucciones iterativas o bucles en PHP son las siguientes:

Veamos la primera de ellas, las  instrucciones o bucles for. Su sintaxis es la siguiente:

for ([Inicialización de la variable] ; [Condición] ; [Incremento o decremento de la variable])
{
[Instrucciones];
}

O como lo explica el portal oficial PHP.net:

for (expr1; expr2; expr3) sentencia

Veamos algunos ejemplos prácticos para entenderlo mejor:

<?php 
/* ejemplo sencillo de bucle for en PHP */
for ($n = 1; $n <= 10; $n++) {
echo "$n <br />"; //añadimos un salto de línea en HTML (<br />)
}
?>

 Lo muestro también con otro formato de visualización: 

<?php
/* ejemplo sencillo de bucle for en PHP */
for ($n = 1; $n <= 10; $n++) {
    echo “$n <br />”; //añadimos un salto de línea en HTML (<br />)
}
?> Ejecutar ejemplo

EXPLICACIÓN del ejemplo: En primer lugar hemos inicializado la variable $n y le hemos dado el valor 1.Esto sólo se realizará la primera vez.  En segundo lugar, hemos establecido la condición, que la variable $n sea menor de 15 para que se realice la instrucción o sentencia que veremos al final . En  tercer lugar, hemos establecido el ‘paso’ -incremento o decremento- de la variable cada vez que ‘dé una vuelta’, es decir, cada vez que acabe y vuelva a la condición para evaluarla ($n <= 10;). En nuestro ejemplo, ha sido con un incremento de +1 a través del operador de incremento ($n++). Por último, y entre brackets, hemos especificado cuál es la instrucción que debe realizar e bucle for (echo $n;) mientras se cumpla la condición -sea verdadera o TRUE) ($n <= 10;) y con qué incremento ($n++),  $n+1 en nuestro caso. La instrucción for finaliza en cuanto la condición se evalúa como falsa (FALSE): en nuestro primer  ejemplo, en cuanto la variable $n alcanza el valor de 10.


NOTA:
Os debo unos cuantos ejemplos más.  En breve, prometido…

Lecturas recomendadas:
Definición de iteración
Estructura for
http://es2.php.net/manual/es/control-structures.for.php

Estructuras de control en PHP IV: el operador ternario

[Control de flujo o estructuras de control en PHP VI] Operador Ternario

Valencia, 28/09/2012, G.B.
Como os comenté en el anterior post, para finalizar con las instrucciones condicionales en PHP, vamos a conocer ahora el denominado  operador ternario. En realidad, no es una nueva clase de instrucción condicinal, sino una forma distinta de representar las instrucciones condicionales if/else, pero utilizando menos  líneas de código, por decirlo de algún modo.

Toma el nombre de ternario porque utiliza 3 argumentos; tiene tres partes definidas: (PARTE1) ? (PARTE2) : (PARTE3);

  • La primera parte es la condición o expresión que incluye la variable
  • La segunda el resultado de esa condición o expresión si el valor de la variable es verdadero (TRUE), cuando la condición se cumple.
  • La tercera parte es el valor o expresión si el resultado es falso (FALSE), cuando no se cumple la condición

Sintaxis del operador ternario:

$NombreVariable = (condición) ? sentencia1-cuando-se-cumple : sentencia2-cuando-no-se-cumple;
Si utilizamos alguna instrucción o expresión como por ejemplo echo, la sintaxis sería:
echo ($NombreVariable = (condición)) ? sentencia1-cuando-se-cumple : sentencia2-cuando-no-se-cumple;

Otra forma de representarlo sería como lo hace la Wikipedia (añadiendo el punto y coma final de la expresión):

expresión boleana ? valor si cierto : valor si falso;
ó
variable = condición ? valor si es cierto : valor si es falso;

 Como podemos observar se constituye de (PARTE1) ? (PARTE2) : (PARTE3); que significa (CONDICIÓN) ? (RESULTADO1) : (RESULTADO2); También podemos representarlo así:
INSTRUCCIÓN (CONDICIÓN) ? (RESULTADO-SI-SE-CUMPLE) : (RESULTADO-SI-NO-SE-CUMPLE);

Vamos a verlo con un ejemplo. Primero escribiremos la instrucción condicional utilizando la estructura if/else que ya conocemos. En segundo lugar, la reescribiremos utilizando la sintaxis del operador ternario. El ejemplo, muy sencillo, nos mostrará el mensaje “Son las 7 y cuarto de la mañana, hora de levantarse!!“, si son las 7:15 horas de la mañana (TRUE) y el mensaje “Estoy aprendiendo PHP, poco a poco.” , si lo ejecutamos a cualquier otra hora del día, es decir, si la condición es falsa ya que el valor de la variable  es distinto (FALSE):

Primero, la instrucción if/else que ya conocemos:

<?php
$hora = date ('H:i'); // formato de hora y minutos en PHP
if ($hora == ('7:15')){
echo 'Son las 7 y cuarto de la mañana, hora de levantarse!!';
}
else {
echo 'Estoy aprendiendo PHP, poco a poco!';
}
?>

<?php
$hora = date (‘H:i’); //formato de hora y minutos en PHP
if ($hora == (‘7:15’)){
echo ‘Son las 7 y cuarto de la mañana, hora de levantarse!!’;
}
else {
echo ‘Estoy aprendiendo PHP, poco a poco!’;
}
?> Ejecutar ejemplo

Y ahora lo mismo utilizando el operador ternario:

<?php
$hora = date ('H:i');
echo ($hora == ('7:15')) ? 'Son las 7 y cuarto de la mañana, hora de levantarse!!' : 'Estoy aprendiendo PHP, poco a poco!';
?>

<?php
$hora = date (‘H:i’);
echo ($hora == (‘7:15’)) ? ‘Son las 7 y cuarto de la mañana, hora de levantarse!!’ : ‘Estoy aprendiendo PHP, poco a poco!’;
?> Ejecutar ejemplo

El resultado será exactamente el mismo. Tened en cuenta que echo no necesita paréntesis, ya que no es una función, sino una sentencia del lenguaje.

Con esto finalizamos las instrucciones condicionales o de control de flujo en PHP. Lo siguiente que veremos serán las instrucciones de iteracción o bucles. De todas formas, las seguiremos utilizando en los próximos ejemplos.


Lecturas recomendadas:

El operador ternario en PHP (webtaller.com)
Operador terciario (Wikipedia)
Operadores de comparación en PHP

Estructuras de control en PHP V: instrucción switch

[Control de flujo o estructuras de control en PHP V] Instrucciones Switch

Valencia, 27/09/2012, G.B.
Tras haber conocido ya las estructuras condicionales en PHP con if, if/else y if/elseif/else, pasamos ya a la última: la estructura switchYa sabemos que las sentencias o estructuras condicionales se utilizan para realizar distintas acciones basadas en diferentes condiciones. Switch actúa de la misma manera que lo hace la estructura if/elseif/else, pero permite simplificar el código cuando las condiciones o posibilidades son muchas.

La expresión o variable que va después de la palabra reservada switch se evalúa utilizando la palabra case (caso en inglés) seguida de dos puntos. Si hay un equivalente, una coincidencia, se ejecutará la sentencia tras ‘case‘. En caso contrario, se sale de la instrucción utilizando la palabra reservada break y se pasa al siguiente ‘caso’ o case, en donde se evaluará la siguiente sentencia,  y así hasta llegar a un case en el que se cumpla.  En el caso de que no se cumple ninguna de las equivalencias presentadas tras cada uno de los ‘case’, es decir, en el caso de que no haya ninguna equivalencia, se puede utilizar una instrucción por defecto representada por la palabra default, también  seguida de dos puntos. La estructura condicional switch está ‘encerrada’ entre brackets { }.

Pero mejor veamos una representación de la sintaxis de switch:

switch ($nombreVariable) {
case valor1:
      (sentencia1);
      break; // salida que se utiliza opcionalmente
case valor2:
      (sentencia2);
      break;
case valor3:
      (sentencia3);
      break;
case valor4:
      (sentencia4);
      break;
case valor5:
      (sentencia5);
      break;
defaulf:
      (sentencia o instrucción predeterminada); // esta se ejecutará en caso de que ninguna de las equivalencias anteriores se cumpla
}

Resumiéndolo:

switch (variable) {
   case: sentencia1;
   break; 
case: sentencia2;
   break; 
default: sentencia predeterminada;

Para entenderlo mejor, vamos a adaptar el ejemplo del post anterior a la estructura switch, aumentando con esa instrucción las posibilidades:

<?php
$hora = date ('H');
switch ($hora) {
case 7:
echo 'Es hora de levantarse, campeón';
break; // salida que se utiliza opcionalmente
case 8:
echo '¿Estás despierto ya?';
break;
case 10:
echo '¿Un cafetito?';
break;
case 13:
echo 'Falta menos para comer. ¿Tienes hambre ya?';
break;
case 14:
echo 'A comer!';
break;
case 16:
echo '¿Te apetece otro café?';
break;
case 19:
echo 'Descansa un poco: apaga el ordenador.';
break;
case 20:
echo 'Queda menos para cenar. ¿Tienes hambre?';
break;
case 23:
echo 'El día ya casi ha pasado. Debes estar cansado';
break;
case 24:
echo '¿Por qué no te vas a dormir?';
break;
default:
echo '<h2>Bienvenido a Aprendiendo PHP</h2>'; /* Esta es la frase por defecto que aparecerá en formato Título 2 en el caso de que no se cumpla ninguna de las equivalencias presentadas */
break;
}
?>

<?php
$hora = date (‘H’);
switch ($hora) {
   case 7:
   echo ‘Es hora de levantarse, campeón’;
   break; // salida que se utiliza opcionalmente
case 8:
   echo ‘¿Estás despierto ya?’;
   break;
case 10:
   echo ‘¿Un cafetito?’;
   break;
case 13:
   echo ‘Falta menos para comer. ¿Tienes hambre ya?’;
   break;
case 14:
   echo ‘A comer!’;
   break;
case 16:
   echo ‘¿Te apetece otro café?’;
   break;
case 19:
   echo ‘Descansa un poco: apaga el ordenador.’;
   break;
case 20:
   echo ‘Queda menos para cenar. ¿Tienes hambre?’;
   break;
case 23:
   echo ‘El día ya casi ha pasado. Debes estar cansado’;
   break;
case 24:
   echo ‘¿Por qué no te vas a dormir?’;
   break;
default:
   echo ‘<h2>Bienvenido a Aprendiendo PHP</h2>’; /* Esta es la frase por defecto que aparecerá en formato Título 2 en el caso de que no se cumpla ninguna de las equivalencias presentadas */
   break;
}
?> Ejecutar ejemplo

Ya sólo nos queda  ver -respecto a las estructuras condicionales en PHP- otro tipo de operador condicional que equivale a la estructura if/else denominado operador ternario. En el próximo post…


Lecturas recomendadas:
Switch
PHP Instrucción Switch
PHP Switch Statement