/
Variables

Tipos de datos en PHP

23. 08. 2019

Obsah článku

Todos los datos procesados en PHP son de un tipo determinado. Por ejemplo, un entero, una cadena o un booleano (verdadero/falso).

Tipos de datos básicos

Los tipos básicos también se llaman tipos de datos primitivos, o tipos escalares.

Tipo, nombre, descripción, etc.
int
float
string
(boolean) Valor booleano del álgebra booleana, sólo puede contener true o false.
El valor vacío null es útil para los casos en los que queremos expresar que algo no existe. Por ejemplo, un artículo no tiene categoría. A veces null se sustituye incorrectamente por null (0) o cadenas vacías (''), pero esta no es una buena solución para expresar la inexistencia.

Atención: El tipo null no es escalar.

Cero (0) contra nulo

A muchos desarrolladores les cuesta entender la diferencia entre 0 (cero) y null (un valor inexistente) cuando empiezan a desarrollar.

Esta distinción se puede explicar muy bien y con humor con la siguiente imagen:

0 vs. null

Reembalaje manual

Algunos tipos pueden convertirse entre sí. El tipo de datos de destino se especifica mediante corchetes y puede especificarse en cualquier parte de la aplicación, por ejemplo al enumerar un valor.

Por ejemplo:

$pi = 3.14;
echo $pi; // imprime 3.14
echo (int) $pi; // imprime 3

Relleno dinámico

Considera las siguientes 2 variables:

$x = 10;
$y = '10';

¿Cuál es la diferencia entre el contenido de las variables $x y $y?

La variable $x es un número, $y es una cadena (que contiene un "1" y un "0"), por lo que si sólo almacenamos la variable en memoria y no realizamos ninguna operación que afecte al valor. Por ejemplo, las siguientes 2 entradas devolverán el mismo resultado:

echo $x + 5; // imprime 15
echo $y + 5; // imprime 15

En el segundo caso, se produce la llamada sobreescritura dinámica, es decir, la variable convierte su tipo de datos para que se pueda realizar una operación computacional sobre ella. No siempre se puede confiar en este comportamiento y es más bien un comportamiento correctivo para arreglar scripts de principiantes mal escritos. Si es posible, escriba siempre los números con un tipo de datos para almacenarlos, ya que esto aumenta su precisión y facilita su uso en el futuro.

Nota: Es importante tener en cuenta que no podemos convertir los tipos de datos de forma completamente arbitraria, por lo que esto no siempre es posible. Si sobrescribes un tipo de datos a otro (incompatible), puede que la conversión no se produzca en absoluto, o que el contenido original se corrompa o se destruya por completo y se sustituya por otro. Por ejemplo, si se reescribe una cadena a un número entero (y se almacena en la variable algún texto que no sea un número), se almacenará en la variable el valor 1 en lugar del valor numérico.

Comparación de tipos

Al comparar valores, hay que tener en cuenta los diferentes tipos de datos.

En general, el operador == se utiliza para la comparación general de dos valores (independientemente de los tipos), mientras que === compara tanto los valores como el tipo de datos.

Por ejemplo:

$a = '';
$b = null;
if ($a == $b) {
// Se evaluará como TRUE porque
// se convierte el tipo de datos.
}
if ($a === $b) {
// Realiza una validación mucho más rigurosa
// y no pasará porque es un
// contenido y un tipo de datos diferente, por lo tanto
// este código nunca se ejecutará.
}

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
5.