Verdadero PHP

Acerca de   |   ES   |   EN

006 Tipos de datos

Tipos de datos informan al interpretador de PHP como usar los datos. Quizá Ud. se pregunta porque le importa a la computadora que tipos de datos utiliza. Considere cuan diferente se debe tratar a un número comparado a texto. PHP soporta diez tipos de datos.

Tipos de datos

Tipos escalares

Tipos de compuestos

Tipos especiales

Usted puede determinar el tipo de dato usando uno de los métodos var_dump() o gettype().

<?php
// Un integer
var_dump(7); 
// Salida:
// php shell code:1:
// int(7)
echo gettype(7); // salida: integer
// ^anota que con gettype(), no sale nada 
// a la pantalla sin tener "echo" en frente.

// Puede tambien usar en un variable:
$var = 3;
var_dump($var); // tipo: int(3)
echo gettype($var); // tipo: integer

$var2 = "Diego Rivera";
var_dump($var2); // tipo: string(12) "Diego Rivera"
echo gettype($var2); // tipo: string

Forzado de tipos

PHP es un lenguaje de tipos dinámicos. Eso quiere decir que no requiere que el tipo de una variable sea declarada antes de que se puede usar, y que el tipo de una variable puede cambiar. Así que el tipo de una variable se define por el valor que contiene. Si contiene un string, la variable es un string. Si contiene un objeto, la variable es un objeto. Esto significa que una variable puede a veces ser cambiado de un tipo a otro. Esto se conoce como forzado de tipo o conversión de tipo.

<?php
$edad = 10; // $edad es un integer
$edad = (string) $edad; // $edad es forzado a un string y ahora es "10" (anote las comillas dobles)

Convertir de tipo es tan simple como colocar el tipo deseado en paréntesis antes del tipo de datos:

PHP puede forzar a diferentes tipos dependiendo en el contexto. Hay seis contextos en que el forzado de tipos ocurrirá automáticamente. Usted puede leer más en la documentación sobre la manipulación de tipos. No entraremos en todos los contextos ahora, pero si los tratamos en lecciones futuros.

Consideramos un ejemplo para ilustrar el punto.

<?php
// Dado que tiene una variable con el tipo de objeto:
$obj = new stdClass(); // $obj es de tipo objeto

// ¿Qué pasará cuando tratamos de mostrar el objeto en la pantalla?
echo $obj;

// Luego sale el error:
// PHP Warning:  Uncaught Error: Object of class stdClass could not be converted to string in php shell code:1

// Ahora suponemos que tiene una variable con un tipo de booleano:
$bool = true;

// ¿Qué pasará cuando tratamos de mostrar el booleano en la pantalla?
echo $bool;

// Esta es la salida:
// 1

PHP no automáticamente convierte el objeto a un string cuando se muestra con echo, y automáticamente convierte el booleano a un string cuando se muestra con echo.


Recursos


Retos

Maneras alternativas del forzados de tipos

Sucede que hay otra manera de forzar a integer y otra manera de forzar a string. Busca por la documentación oficial o usa google para encontrar lo que son. Una vez que los halla, trátalos de usar y compararlos a la manera descrito en esta lección. ¿Cuál prefiere?