Tipos de Datos en PHP: Integer, Float, String y Booleanos

Clase 12 de 23Curso Básico de PHP: Instalación, Fundamentos y Operadores

Resumen

Un tipo de dato simplemente es una forma de diferenciar los datos que tenemos por medio de su tipo. Por ejemplo, si es un número, una letra, una palabra, etc.

¿Cuáles son los tipos de datos?

En programación podemos tener varios tipos de datos, pero los más conocidos son: numéricos, cadenas de caracteres, booleanos y sin valor

Numéricos

Representan a los datos de tipo numérico. Estos se pueden subdividir en:

  • Integer: número sin decimales. Por ejemplo: 50; 70; 300.
  • Float: número con decimales. Por ejemplo: 5.3; 4.7; 8.24.
  • Double: número con decimales, similar a float, pero con capacidad de almacenar más decimales. Especialmente útil para variables o constantes que requieren valores con mayor precisión, por ejemplo el número PI que tiene muchos decimales.

Cadenas de caracteres

Quiere decir que almacenaremos texto. Tenemos dos grupos:

  • Char: es un solo caracter que puede ser una letra, número o un símbolo como por ejemplo #, @, %, a o 5.
  • String: es una cadena de más de un caracter como por ejemplo “¡Hola, Mundo!”

Boolean

Es decir que algo es verdadero (true) o falso (false).

Sin valor

Sirve para expresar que una variable no tiene valor (Null) o que está no definido (Undefined)

El tipado de PHP

PHP tiene tipado débil, es decir, no indicamos el tipo de variable al declararla, ya que puede deducir qué tipo de dato estás usando. Veamos un ejemplo:

<?php
$numerito = 0;

var_dump($numerito); // var_dump() lo usamos para ver información de la variable, en este caso de $numerito

echo "\n"; // Salto de línea

Y si ejecutamos en la terminal este archivo PHP podremos ver que nos indica que $numerito es de tipo integer (int) con un valor de 0:
PHP infiere que la variable $numerito es de tipo integer

Conversión de tipos automática

PHP es capaz de convertir un tipo de dato a otro de forma automática según el contexto donde se emplee. Por ejemplo, si sumas un número con un string, PHP evaluará ambos como números:

<?php
$numerito = "23"; // String
$numerito = $numerito + 2 ; // Le sumamos al String un número

var_dump($numerito); // var_dump() nos inmprimirá información

echo "\n"; // Salto de línea

Si ejecutamos nuestro archivo PHP nos indica que $numerito es de tipo integer (int) con un valor de 25, es decir, realiza la conversión internamente de String a int de la cadena "23" y luego le suma el número 2:

PHP nos indica que ahora la variable $numerito es de tipo integer con un valor de 25

Malas prácticas

Veamos el siguiente caso:

<?php
$papas = "10 papas en el costal";
$cuantas_papas_hay = $papas + 5;

echo $cuantas_papas_hay;

¿Qué crees que hará PHP ante esta suma? Pues PHP tiene la capacidad de identificar el primer número que está dentro de la variable $papas, extraerlo y realizar la suma. Sin embargo, nos mostrará un aviso previamente:

PHP avisa de que encontró un valor no numérico en la suma $papas + 5. Luego muestra el resultado de la operación que es igual a 15

Ya que el número se encontraba al principio del String, y no en el medio o al final, la operación fue posible. Esto es debido a que, durante la ejecución del programa, PHP encontró un número (10) al inicio que le indicó que esa variable ($papas) iba a ser convertida a integer. No obstante, al encontrar una cadena de caracteres ("...papas en el costal") después de dicho número es que lanza el mensaje de alerta que vemos previo al resultado de la suma (15) diciendo que durante la operación encontró valores no numéricos ("A non-numeric value encountered...").

Conclusión

PHP es muy permisivo, pero esto nos puede llevar a malas prácticas. Por ello es recomendable monitorear los tipos de datos de tu programa.

Contribución creada por: Martín Álvarez con el aporte de Gregory Hernandez Abad