martes, 8 de marzo de 2016

Sintaxis básica en PHP

Este artículo ha sido actualizado el día 03/09/2017 por políticas de calidad de la información del sitio para brindar una información oportuna y actualizada.

Ya hemos visto anteriormente una pequeña Introducción al Lenguaje PHP, en esta ocasión, empezaremos con el estudio de la sintaxis básica del lenguaje y cómo combinarlo con el lenguaje de marcado HTML.

Etiquetas de Apertura y Cierre


Cómo en muchos lenguajes de scripting, PHP utiliza etiquetas que identifican el inicio y fin de un script PHP. Éstas etiquetas pueden ser usadas en scripts que contengan solamente código PHP o bien una combinación con otro lenguaje como HTML. A continuación, vemos cómo PHP se puede utilizar como lenguaje embebido dentro de HTML.

<!DOCTYPE html>
<html>
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>Título</title>
   </head>
   
   <body>
      <?php echo "<p>Hola mundo</p>"; ?>
  </body>
</html>

Además de esto, puede darse el caso contrario, y utilizar PHP como controlador para imprimir código HTML.

<?php
   echo "<!DOCTYPE html>";
   echo "<head><title>Título Página</title></head>";
   echo "<body>";
   echo "<p>Hola mundo!</p>";
   echo "</body>";
?>

Ambas formas son correctas y tienen usos específicos. La primera forma es común cuando se está diseñando la capa de presentación de una aplicación web. La segunda forma tiene un uso más extendido en el diseño de controladores de aplicación (lógica de negocio).

Cuando se trabajan con código PHP embebido en HTML, por lo general las impresiones en pantalla se realizan mediante la siguiente sintaxis de atajo denominada short echo tag (note la etiqueta de apertura <?=).

<!DOCTYPE html>
<html>
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>Título</title>
   </head>
   
   <body>
      <?= "<p>Hola mundo</p>"; ?>
  </body>
</html>

Por otro lado, cuando se realizan scripts puramente en PHP (sin escapes a HTML), el grupo de desarrollo de PHP aconseja no agregar la etiqueta de cierre para prevenir la impresión accidental de nuevas líneas o espacios en blanco. Vea por ejemplo como en el siguiente código se ha omitido la etiqueta de cierre ?>.

<?php
class Cliente
{
   public $nombre;

   public function obtenerNombre()
   {
      return $this->nombre;
   }
}

El significado completo del código anterior puede parecer algo complejo de entender para el programador amateur, sin embargo, el objetivo de este ejemplo es ver cómo en las aplicaciones de producción puede omitirse la etiqueta de cierre en archivos puramente PHP.

Por otro lado, desde PHP 7 se eliminaron las etiquetas <%, %>, <%= disponibles en antiguas versiones de PHP junto con la etiqueta de script HTML <script language="php">. El uso de estas etiquetas está desaconsejado y se recomiendo no utilizarlas en aplicaciones PHP.

Escape de código PHP en HTML


Existen varias formas de escapar del lenguaje HTML cuando se utiliza en conjunto con PHP. Una de ellas es la que se vio en el primer ejemplo del presente post. Consiste básicamente en abrir y cerrar las etiquetas de PHP cada vez que se requiera imprimir código HTML. Sin embargo, observemos ahora cómo luce este tipo de escape con otros elementos del lenguaje como las sentencias condicionales.

<!DOCTYPE html>
<html>
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>Título</title>
   </head>
   
   <body>
      <?php
         if (true) {
            echo "<p>Hola mundo</p>";
         }
         else 
         {
            echo "<p>Esto no se imprime</p>";
         }
      ?>
  </body>
</html>

PHP ha diseñado una forma alternativa de sintáxis que puede ser utilizada en documentos que tienen características de plantilla. Para nuestro caso, supondremos que el archivo anterior es una plantilla, y lo modificaremos de la siguiente forma para que utilice la sintáxis alternativa. Esta forma de escapar el código PHP es mucho más entendible y compacta que la sintaxis de llaves utilizada en controladores PHP.

<!DOCTYPE html>
<html>
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>Título</title>
   </head>
   
   <body>
      <?php if (true): ?>
         Hola mundo 
      <?php else: ?>
         Esto no se imprime
      <?php endif; ?>
  </body>
</html>

Finalmente, si combinamos la shor echo tag con un operador ternario para simular el bloque if del código anterior, obtendríamos el siguiente script mucho más compacto.

<!DOCTYPE html>
<html>
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>Título</title>
   </head>
   
   <body>
      <?= (true) ? "Hola mundo" : "Esto no se imprime" ?>
  </body>
</html>

La belleza, en todo su esplendor!. Se ha refactorizado el código de los anteriores ejemplos en tan solo una línea de código PHP. Este ejemplo simple muestra algunos aspectos avanzados de la programación como lo es la refactorización de código y las sentencias de atajo como el operador ternario. De esta forma, el nuevo programador de PHP puede adentrarse poco a poco en el lenguaje implementando buenas prácticas de programación y refactorización.

Nota: Como otros lenguajes (C, Perl) cada sentencia PHP debe terminar con un punto y coma. Sin embargo, en algunas partes de los ejemplos se ha omitido dado que PHP no los requiere en dichos casos. El lector debe observar los ejemplos en los cuales se utliza la short echo tag, dado que con esta sentencia no se necesita un punto y coma.


Comentarios en PHP


PHP soporta comentarios tipo C, C++ y Unix-shell. A continuación se muestra la forma en que se puede comentar el código PHP de cada una de las formas posibles.

<?php
   // Esto es un comentario en una sola línea tipo C++
   echo "Hola ";

   # Esto es un comentario tipo Unix-shell
   echo "mundo";

   /* Este es un comentario
      multilínea */
   echo "!";
?>

Los comentarios multilínea no deben ser anidados por ninguna razón en PHP. Los comentarios en PHP sirven para documentar el código y que en el futuro los programadores puedan entender un poco mejor las razones por las cuales hemos creado variables, procedimientos, entre otros componentes del script. Para más información sobre cómo documentar el código puedes visitar phpDocumentor. Hasta la próxima!.


Referencias

- PHP: PHP tags - Manual. (2016, March 7). In PHP: Languaje Reference - Manual. Retrieved 03:42, March 7, 2016, from http://php.net/manual/en/language.basic-syntax.phptags.php
- PHP: Comments - Manual. (2016, March 7). In PHP: Languaje Reference - Manual. Retrieved 03:42, March 7, 2016, from http://php.net/manual/en/language.basic-syntax.comments.php