En la segunda entrega de esta seguidilla de post, vamos a hablar en los tipos primitivos que soporta PHP. Este post sera un resumen hecho de la pagina de PHP. Los tipos de datos se dividen en las siguientes categorías: Escalares, Compuestos, Especiales y Pseudo-Tipos; dentro de cada uno de ellos se encuentran los distintos tipos de datos que usaremos con regularidad. Tengan en cuenta que por lo general PHP no necesita que se le especifique a una variable que tipo de dato va a ser, en algunos casos particulares si, pero por lo general no es necesario.
Espero que les sea útil, y cualquier cosa me consultan. Por lo menos a mi me es útil para refrescar conocimientos, aprender pequeños detalles que uno no había prestado atención con anterioridad, en fin… Empecemos!
- Tipos Escalares:
- Boolean – Link
- El boolean expresa un valor de verdad, puede ser TRUE o FALSE
- Integer – Link
- Un entero o integer es un número del conjunto Z = {…, -2, -1, 0, 1, 2, …}. Pueden ser especificados en notación decimal (base 10), hexadecimal (base 16) u octal (base 8).
- Float – Link
- Los números de punto flotante (también conocidos como “flotantes”, “dobles” o “números reales”) pueden ser especificados usando cualquiera de las siguientes sintaxis: $a = 1.234; $b = 1.2e3; $c = 7E-10;
- String - Link
- Un string es una serie de caracteres, y por lo tanto, un caracter es lo mismo que un byte. Es decir, hay exactamente 256 diferentes caracteres posibles. Esto implica tambien que PHP no tiene soporte nativo para Unicode. Consulte utf8_encode() y utf8_decode() para informarse de la funcionalidad básica de Unicode.
- Sintaxis, un string puede especificase de cuatro formas diferente.
- Comillas Simples
- echo ’Esto es una cadena sencilla’;
- Comillas Dobles – Si un string está encerrado entre comillas dobles (“), PHP interpretará más sentencias de escape como caracteres especiales:
- echo ”Esto es una $test”;
- Sintaxis Heredoc - Una tercera forma de delimitar strings es mediante la sintaxis heredoc: <<<. Después de este operador, se deberá ofrecer un identificador y después una nueva línea. A continuación va el propio string, y para cerrar la notación se pone el mismo identificador.
- $str = <<<EOD
Ejemplo de una cadena
expandida en varias líneas
empleando la sintaxis heredoc.
EOD; - Sintaxis Nowdoc - Nowdocs son a las cadenas con comillas simples lo mismo que Heredoc lo es a las comillas dobles. Una cadena nowdoc se especifica de forma análoga a la heredoc, pero no se realiza ningún análisis dentro de nowdoc. Esta construcción es ideal para embeber codigo PHP o grandes fragmentos de texto sin necesidad de escaparlo. Comparte algunas características comunes con la construcción SGML <![CDATA[ ]]>, donde se declara un fragmento de texto que no debe ser analizado.
- $str = <<<’EOD’
Ejemplo de una cadena
expandida en varias líneas
empleando la sintaxis nowdoc.
EOD;
- Tipos Compuestos:
- Array – Link
- Un array (matriz) en PHP es en realidad un mapa ordenado. Un mapa es un tipo de datos que asocia valores con claves. Este tipo es optimizado para varios usos diferentes; puede ser usado como una matriz real, una lista (vector), tabla asociativa (caso particular de implementación de un mapa), diccionario, colección, pila, cola y probablemente más. Ya que los valores de un array pueden ser otros arrays, también es posible crear árboles y arrays multidimensionales.
- Sintaxis Asignación:
- $arr = array(“foo” => ”bar”, 12 => true);
- $arr["foo"] = “bar”;
- $arr[] = “bar”;
- Sintaxis print:
- echo $arr["foo"];
- print_r($arr);
- var_dump($arr);
- Object – Link
- Nota: Este es un tema bastante complejo, por lo tanto sera tratado en otro post, cuando sea creado se agregara el link acá!
- Inicialización:
- Para crear un nuevo object, utilice la declaración new para instanciar una clase.
- Tipos Especiales:
- Resource - Link
- Un valor tipo resource es una variable especial, que contiene una referencia a un recurso externo. Los recursos son creados y usados por funciones especiales. Vea el apéndice para un listado de todas estas funciones y los tipos resource correspondientes.
- Conversión a recurso:
- Dado que las variables resource contienen gestores especiales a archivos abiertos, conexiones con bases de datos, áreas de pintura de imágenes y cosas por el estilo, la conversión a tiporesource carece de sentido
- Liberación de recursos:
- Gracias al sistema de conteo de referencias introducido con el Motor Zend de PHP 4, un recurso que ya no es referenciado es detectado automáticamente, y es liberado por el recolector de basura. Por esta razón, rara vez se necesita liberar la memoria manualmente.
- NULL - Link
- El valor especial NULL representa una variable sin valor. NULL es el unico posible valor de tipo NULL.
- Una variable es considerada null si:
- Se le ha asignado la constante NULL.
- No se ha establecido en un valor todavía.
- Se ha unset().
- Y también, por razones de legalidad, existen los pseudo-tipos:
- Mixed- Link
- Mixed indica que un parámetro puede aceptar múltiples tipos (pero no necesariamente todos).
- Number- Link
- Number indica que un parámetro puede ser tanto un integer como un float.
- Callback- Link
- Algunas funciones como call_user_func() o usort() pueden aceptar como parámetro funciones de devolución de llamada definidas por el usuario. Las funciones de devolución de llamada no sólo pueden ser funciones simples, sino también pueden ser métodos object, incluyendo métodos de clases estáticas.
- Una función de PHP puede ser pasada por su nombre como un string. Cualquier función incorporada o definida por el usuario puede ser usada, excepto los constructores de lenguaje como:array(), echo(), empty(), eval(), exit(), isset(), list(), print() o unset().
- Un método de un object instanciado puede ser pasado como un array conteniendo un object en el índice 1 y el nombre del método en el índice 1.
- Los métodos de clases estáticas también pueden ser pasdos sin instanciar un object de la clase pasando en el índice 0 el nombre de la clase en lugar del object.
- Junto a las típicas funciones definidas por el usuario, tambien se puede usar create_function() para crear una función de devolución de llamada anónima. Desde PHP 5.3.0 también es posible pasar un cierre como un parámetro de devolución.
- Void- Link
- void como un tipo de variable de retorno significa que el valor de retorno no es útil. void en una lista de parámetros significa que la función no acepta ningún parámetro.
- $… en el prototipo de funciones significa and so on. Este nombre de variable se usa cuando una función puede tomar un número infinito de argumentos.
Los tipos de una variable usualmente no son declaradas por el programador, es decidido en tiempo de ejecución por PHP dependiendo del contexto en el que se este utilizando la variable.
Espero que les sea util! y espero sus comentarios al respecto…


[...] el turno de escribir el tercer post de la serie de PHP, ya escribí sobre Sintaxis básicas, Tipos de datos y los Operadores. Este es el turno de hacer un resumen de las estructuras de [...]
[...] Solo se puede definir como constantes valores escalares (boolean, integer, float y string). Se puede definir resource en constantes, pero debería ser evitado, porque puede causar resultados inesperados. Para ver los diferentes tipos de datos entra al post de PHP – Tipo de Datos. [...]