Saltar la navegación

1.3.- Funciones relacionadas con los tipos de datos.

Imagen de parte de un teclado de ordenador mostrando la tecla ñ
WikiMedia Commons (Dominio público)

En PHP existen funciones específicas para comprobar y establecer el tipo de datos de una variable, gettype obtiene el tipo de la variable que se le pasa como parámetro y devuelve una cadena de texto, que puede ser array, boolean, double, integer, object, string, null, resource o unknown type.

También podemos comprobar si la variable es de un tipo concreto utilizando una de las siguientes funciones: is_array(), is_bool(), is_float(), is_integer(), is_null(), is_numeric(), is_object(), is_resource(), is_scalar() e is_string(). Devuelven true si la variable es del tipo indicado.

Análogamente, para establecer el tipo de una variable utilizamos la función settype pasándole como parámetros la variable a convertir, y una de las siguientes cadenas: boolean, integer, float, string, array, object o null. La función settype devuelve true si la conversión se realizó correctamente, o false en caso contrario.

<?php
    $a = $b = "3.1416"; // asignamos a las dos variables la misma cadena de texto
    settype($b, "float"); // y cambiamos $b a tipo float
    print "\$a vale $a y es de tipo ".gettype($a);
    print "<br />";
    print "\$b vale $b y es de tipo ".gettype($b);
?> 

El resultado del código anterior es:

$a vale 3.1416 y es de tipo string
$b vale 3.1416 y es de tipo double 

Si lo único que te interesa es saber si una variable está definida y no es null, puedes usar la función isset. La función unset destruye la variable o variables que se le pasa como parámetro.

<?php
    $a = "3.1416";
    if (isset($a)) // la variable $a está definida
    unset($a); //ahora ya no está definida
?> 

Es importante no confundir el que una variable esté definida o valga null, con que se considere como vacía debido al valor que contenga. Esto último es lo que nos indica la función empty. Puedes consultar información al respecto haciendo click en el enlace siguiente: Documentación empty.

Existe también en PHP una función define(), con la que puedes definir constantes, esto es, identificadores a los que se les asigna un valor que no cambia durante la ejecución del programa.

bool define ( string $identificador , mixed $valor [, bool $case_insensitive = false ] );

Los identificadores no van precedidos por el signo "$" y suelen escribirse en mayúsculas, aunque existe un tercer parámetro opcional, que si vale true hace que se reconozca el identificador independientemente de si está escrito en mayúsculas o en minúsculas.

<?php
    define ("PI", 3.1416, true);
    print "El valor de PI es ".pi; //El identificador se reconoce tanto por PI como por pi
?>

Sólo se permiten los siguientes tipos de valores para las constantes: integer, float, string, boolean y null.

Autoevaluación

Pregunta

¿Qué se muestra en pantalla al ejecutar el siguiente código?

$a = "-3.1416";

printf("La variable \'\$a\' vale %+.2f", $a); 

Respuestas

La variable '$a' vale -3.14.

La variable '$a' vale +3.14.

La variable \'$a\' vale -3.14.

La variable \'$a\' vale +3.14.

Retroalimentación