> Manuales > Manual de PHP

Formas en que una variable de PHP puede ver variado su tipo.

En el artículo anterior del Manual de PHP comenzamos a explicar cómo se trabaja con variables en este lenguaje. Ya comentamos que PHP tiene un tipado dinámico, pero hay algunas cosas que puedes necesitar hacer en el día a día y que debes saber para cubrir el conocimiento fundamental de variables y tipos de datos en PHP.

PHP no requiere que indiquemos el tipo que va a contener una variable, sino que lo deduce del valor que asignemos a la variable. Asimismo, se encarga de actualizar automáticamente el tipo de la variable cada vez que le asignamos un nuevo valor. Esto es básicamente lo que se llama "tipado dinámico" o "tipado débil", característica no sólo de PHP, sino de muchos otros lenguajes como Javascript.

Por ello, para cambiar el tipo de una variable simplemente le asignamos un valor con un nuevo tipo.

$cadena = 'esto es una cadena';
$cadena = 34 //La variable $cadena cambió de tipo
Nota: Se excluyen en este caso el cambio de variables a tipo Array porque la sintaxis puede resultar ambigua al expresar ese código, es decir, puede darse el caso de que una línea de código pueda significar dos cosas.
$a = "1";
//$a es una cadena
$a[0] = "f"; 
//¿Estamos editando el índice de la cadena o forzando a array?

En este artículo veremos dos tipos posibles de alteración del tipo de variables, más allá del propio que hace PHP con el comportamiento derivado de su tipado dinámico. A esta operación se la conoce habitualmente como "Forzado".

Forzado

Variar el tipo de datos que contiene una variable con el tiempo es una cosa que no siempre es aconsejable, porque si no tenemos certeza de si una variable contiene un dato de un tipo u otro, a veces los resultados obtenidos pueden no ser los esperados.

Para evitar problemas en muchas ocasiones puede venir bien realizar el forzado de una variable a un tipo en concreto, de manera explícita, lo que nos permitirá saber que cuando llega el flujo del programa a un punto dado, aquella variable tendrá el tipo de datos esperado. En PHP existen diversas maneras de forzar una variable a un tipo.

Establecer el tipo con settype()

Podemos forzar una variable para que cambie de tipo con la función settype().

settype($variable,"nuevo_tipo");

la función setType() actualiza el tipo de $variable a "nuevo_tipo" y devuelve un boleano indicando si hubo éxito o no en la conversión.

Entre "nuevo_tipo" tenemos:

Casting de variables

Hay otra manera de realizar un forzado, para que una variable se comporte como un tipo determinado. Ahora vamos a ver otro mecanismo de forzado que es similar al de otros lenguajes como C o Java.

$variable = "23";
$variable = (int) $variable;

Los forzados permitidos son:

Conclusión

Si estás comenzando con PHP y la programación en general, quizás este tema del cambio de tipo y el forzado puede parecer una información un tanto avanzada o sin una aplicación clara. Si es así no te preocupes demasiado por ahora, pero ten presente que tú como programador eres capaz de cambiar los tipos de las variables, para que tus programas hagan exactamente lo que tú deseas.

Cuando hay una incongruencia de tipos PHP siempre intenta hacer lo más adecuado con el código que ejecuta, pero no siempre la solución que él toma es la que tú pudieras pensar. En esos casos, el forzado será realmente importante. Sin duda cuando tengas más experiencia con el lenguaje estas situaciones irán apareciendo.

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online Escu...

Manual