Etiquetas de sección PHP
Las secciones de código PHP deben enmarcarse entre ciertas etiquetas que hacen explícito su contenido, estas etiquetas pueden ser de los siguientes tipos.
| Estilo convencional |
<?php ... ?> |
| Etiquetas cortas |
<? ... ?>
<?= $variable; ?> |
| Etiquetas de script |
<script language="php"> ... </script> |
| Etiquetas estilo ASP |
<% ... %> |
Las etiquetas cortas provocan algunas veces problemas con la interpretación XML de algunos navegadores, sin embargo incluyen la funcionalidad abrevidada de <?= $variable; ?> la cual es expandida automáticamente por el intérprete de PHP a <?php echo $variable; ?>.
Las etiquetas cortas, de script y estilo ASP son ahora obsoletas y se recomienda sólo utilizar las etiquetas del estilo convencional.
Saltos de línea
Los saltos de línea son ignorados por el intérprete de PHP y de HTML, sin embargo en casos específicos separan la sección de la cabecera de la sección de los datos en una respuesta HTTP de un servidor web, por este motivo el intérprete PHP remueve siempre el primer salto de línea después de la etiqueta ?>.
Una forma de eliminar posibles problemas de este estilo es el de omitir cerrar el script, lo cual es perfectamente legal para el intérprete de PHP.
Comentarios
// Comentarios de una sóla línea estilo C.
# Comentarios de una sóla línea.
/*
Comentarios multi línea
estilo C++.
*/
/**
* Comentarios estilo documentación.
*/
Los comentarios de una sóla línea deben terminar en un salto de línea (\n, \r o \n\r según sea el caso) o en una etiqueta de cierre ?>. Por este motivo la etiqueta de cierre tendrá significado aunque se encuentre dentro de un comentario.
Por lo anterior, el siguiente código es válido:
<?php
echo "hola "; // No incluir esta ?> etiqueta
El resultado impreso en salida estándar será: hola etiqueta.
Espacios en blanco.
PHP ignora el exceso de espacios en blanco en la mayoría de los casos. Existen algunas limitaciones.
- No puede haber espacios entre <? y php.
- No es posible separar las palabras clave (Ej: func tio, whi le, etc.).
- No es posible separar los nombre de identificadores: variables y funciones (ej: $var iable, imp rimir()).
Bloques de código
Los bloques de código son sentencias encerradas entre llaves. Son un conjunto de lineas que deben ser todas ejecutadas bajo ciertas circunstancias.
{
// Líneas de código.
}
Los bloques pueden anidarse entre si, es decir, un bloque de código puede contener otros bloques de código a su vez.
Construcciones propias del lenguaje
Las construcciones son elementos que se encuentran incluidos directamente por el lenguaje. Estas construcciones no son funciones convencionales, por lo tanto no retornan un valor.
Ejemplo: echo, die y exit.
Tipos de datos
PHP maneja internamente los tipos de datos en dos grandes categorías: escalares y compuestos.
Una variable escalar contiene un único valor en un instante de tiempo. Los tipos escalares pueden ser de las siguientes clases.
| boolean |
su valor puede ser true o false. |
| int |
valores numéricos, con signo y enteros |
| float |
valores numéricos, con signo y de punto flotante |
| string |
colección de valores binarios |
Valores numéricos
Como se mencionó anteriormente, los valores numéricos pueden ser de dos clases: enteros y de punto flotante. Los valores numéricos tienen signo, es decir, pueden representar un valor positivo o uno negativo.
Pueden ser expresados utilizando diferentes notaciones.
| Decimales |
Notación decimal estándar sin separador de miles. |
| Octales |
Notación octal. Identificada por un cero como prefijo al valor. |
| Hexadecimales |
Notación base 16. Identificada por un 0x como prefijo al valor. Los valores
hexadecimales y el prefijo 0x son insensibles a las mayúsculas. |
Los valores de punto flotante son llamados en otros lenguajes de programación como float o double.
Pueden ser expresados bajo dos diferentes notaciones.
| Decimal |
Notación decimal estándar sin separador de miles utilizando el punto como
separador decimal. |
| Exponencial |
Compuesto por los dígitos significativos (mantisa), la letra E (insensible a mayúsculas)
y un exponente.Ejemplo: 2E3 equivale a 2 x 10^3 que es igual a 2000. |
Al trabajar con valores numéricos se deben tener en cuenta los siguientes aspectos.
- La precisión y el rango de los valores es dependiente de la plataforma en la que se está ejecutando el intérprete de PHP.
- PHP no verifica desbordamientos (overflows).
Ejemplo:
Considere la siguiente expresión: $x = (int) ((0.1 + 0.7) * 10);
El valor esperado de $x sería 8, el cual es el realmente obtenido si se obvia la conversión a entero. Sin embargo la expresión se almacena internamente como 7.999999 en lugar de 8, así que al solicitar su parte entera se obtendrá paradójicamente el valor de 7.
Cuando se necesite precisión en las operaciones matemáticas en un programa PHP se recomienda utilizar las funciones de la extensión BCMath en lugar de las nativas.
Cadenas.
Las cadenas son el tipo de datos equivalente al texto en PHP. En realidad almacenan colecciones ordenadas de información binaria, que a su vez puede ser texto, sin embargo también puede ser un archivo de imagen, una hoja electrónica o un archivo MP3.
Booleanos.
El dominio de datos de este tipo sólo cobija los posibles valores true y false.
La conversión de tipos de datos desde y hacia el tipo boolean sigue estas reglas.
- Un número se convierte en false si su valor es cero, en cualquier otro caso será true.
- Una cadena se convierte en false si es vacía o si contiene un cero como unico caracter. Si contiene otra información, incluyendo múltiples ceros, será convertida a true.
- Cuando se convierte un booleano a un número o una cadena, este será 1 si el valor original era true o 0 en caso contrario.
Tipos de datos compuestos
PHP tiene soporte para dos tipos de datos compuestos.
- Arreglos: son contenedores ordenados de información.
- Objetos: son contenedores de información y de código.
Otros tipos de datos
El lenguaje define los siguientes tipos de datos particulares para ser utilizados en situaciones especiales.
NULL. Indica que una variable no tiene valor. El valor de una variable es NULL cuando se le asignó explícitamente este valor o si aún no se le ha asignado un valor específico.
Tipo de datos resource. Referencia una fuente de datos externa que no se encuentra representada nativamente por PHP. Ejemplos de esto son las referencias a archivos y a imágenes.
Conversión entre tipos de datos.
A pesar de que PHP maneja la conversión de datos de manera transparente es posible forzarla utilizando los operadores de conversión de tipo, los cuales son simplemente el tipo de datos requerido encerrado entre paréntesis. Este procedimiento es conocido como promoción de tipos (casting).
Ejemplo:
$x = 77.23;
$y = (int) $x;
El valor de $y será el de 77, es decir, la parte entera del valor real contenido en $x.
Con respecto a los valores de tipo resource se debe tener en cuenta las siguientes consideraciones.
- Ningún tipo de datos puede convertirse en resource.
- Los valores de tipo resource pueden convertirse en valores de tipo entero o cadena cuya representación será el identificador del recurso o la cadena "Resource ID #" seguida del identificador del recurso respectivamente.
Variables
Son entidades computacionales para el almacenamiento temporal de información, pueden contener cualquier tipo de datos como cadenas, enteros, reales, objetos y arreglos, ya que el lenguaje no define tipos de datos específicos rígidos para sus variables (loosely typed). Implícitamente se realizan las operaciones necesarias para realizar la conversión de tipos según se necesite basado en las operaciones realizadadas sobre los valores.
- Los identificadores de las variables deben empezar con el símbolo de pesos ($).
- El identificador debe estar compuesto por letras (a - z, A - Z), números (0 - 9) y guión bajo (_).
- La primera letra después del símbolo de pesos debe ser una letra o un guión bajo.
- Los identificadores de las variables son sensibles a mayúsculas.
Ejemplo:
$valido = 1;
$_valido = 1;
$5invalido = 0;
Las variables de variables son variables cuyo nombre es el valor almacenado en otra variable.
$nombre = "edad";
$$nombre = 30;
echo $edad; // 30
Siguiendo este procedimiento, es posible crear variables cuyos nombres no respeten las reglas mencionadas anteriormente.
Ejemplo:
$nombre = "2variable";
$$nombre = "valor";
echo ${'2variable'}; // valor
Otra construcción que es posible realizar gracias a la flexibilidad del lenguaje es la de almacenar nombres de funciones en una variable y a partir de ella realizar el correspondiente llamado.
Ejemplo:
$func = "miFuncion";
$func(); //ejecuta a miFuncion()
Sabiendo que PHP no es un lenguaje declarado, es decir, no es necesario declarar las variables antes de utilizarlas, se hace necesario poder determinar si una variable determinada existe en un momento preciso de la ejecución de un programa. Para eso se utiliza la construcción isset().
Ejemplo:
$x = 1;
isset($x); // true
isset($y); // false
Constantes
Son entidades computacionales cuyo valor es inmutable, es decir, no cambia durante la ejecución del programa.
- Las constantes pueden ser accedidas desde cualquier ámbito del programa.
- Sólo pueden contener valores escalares.
- Sus identificadores son sensibles a mayúsculas y tienen las mismas restricciones que los identificadores de las variables, exceptuando el hecho que su nombre no empieza por el signo de pesos ($).
- Como buena práctica de programación se sugiere que su identificador debe ser en mayúsculas.
- Su definición se realiza a través de la construcción define.
Ejemplos:
define ('DEBUG', true); // Constante DEBUG = true
define ('EDAD', 30); // Constante EDAD = 30
asdf
Tags: PHP