Cada expresión en PHP tiene uno de los siguientes tipos incorporados dependiendo de su valor:
PHP es un lenguaje tipado dinámicamente, lo que significa que, por omisión, no es necesario especificar el tipo de una variable, ya que esto se determinará en tiempo de ejecución. Sin embargo, es posible tipificar estáticamente algunos aspectos del lenguaje mediante el uso de declaraciones de tipos. En la página sistema de tipos se pueden encontrar los distintos tipos que admite PHP.
Los tipos restringen el tipo de operaciones que se pueden realizar en ellos. Sin embargo, si se utiliza una expresión/variable en una operación que su tipo no admite, PHP intentará convertir el valor en un tipo que admita la operación. Este proceso depende del contexto en el que se utiliza el valor. Para obtener más información, consulte la sección sobre Manipulación de tipos.
Tablas de comparación de tipos de PHP también pueden ser útiles, ya que contienen varios ejemplos de comparación entre valores de diferentes tipos.
Nota: Es posible forzar que una expresión se evalúe en un tipo determinado mediante una conversión de tipo. También se puede convertir el tipo de una variable en el lugar mediante la función settype().
Para comprobar el tipo y el valor de una
expresión,
utilice la función var_dump().
Para obtener el tipo de una
expresión,
utilice la función get_debug_type().
To retrieve the type of an
expression,
use the get_debug_type() function.
Sin embargo, para comprobar si una expresión es de un tipo
determinado, utilice las funciones
is_type
.
<?php
$a_bool = true; // un valor booleano
$a_str = "foo"; // una cadena de caracteres
$a_str2 = 'foo'; // una cadena de caracteres
$an_int = 12; // un número entero
echo get_debug_type($a_bool), "\n";
echo get_debug_type($a_str), "\n";
// Si este valor es un entero, incrementarlo en cuatro
if (is_int($an_int)) {
$an_int += 4;
}
// Si $a_bool es una cadena, imprimirla
// (no imprime nada)
if (is_string($a_bool)) {
echo "Cadena: $a_bool";
}
?>
Output of the above example in PHP 8:
bool string int(16)
Nota: Antes de PHP 8.0.0, cuando la función get_debug_type() no estaba disponible, se podía utilizar en su lugar la función gettype(). Sin embargo, no utiliza los nombres de tipos canónicos.