Lecciones de PHP - Lección 5 - Variables lógicas en PHP
Ya sabemos que en PHP existen los números y las cadenas de texto. Pero eso no es todo; en esta lección veremos otro tipo de variable: las variables lógicas. Se llaman lógicas porque se usan para construir la lógica del código. Imagina una situación donde, según ciertas condiciones, deben ejecutarse distintas acciones. Tienes un vaso con agua del cual quieres beber, pero si hay poca agua no te saciarás, y si hay demasiada, se derramará al inclinar el vaso. Por eso, hay que añadir o quitar agua según el nivel del vaso.
Esto puede representarse así:
$cantidad_agua_vaso = 100;
$poca_agua = VERDADERO;
SI $poca_agua
ENTONCES $cantidad_agua_vaso = $cantidad_agua_vaso + 20;
En este caso, la variable $poca_agua
es una variable lógica que puede tomar el valor TRUE
(verdadero) o FALSE
(falso), y nada más. El código anterior no es PHP válido; si lo colocas en un archivo PHP, Apache mostrará un error. El equivalente en PHP sería:
$water = 100; $not_enough_water = TRUE; if($not_enough_water){ $water = $water + 20; }
Hablaremos del operador condicional if
más adelante. Por ahora, enfoquémonos en TRUE
y FALSE
. Además de estos, a menudo se usan 1
y 0
. Entonces, ¿por qué usar TRUE
y FALSE
si 1
y 0
funcionan igual? Recuerda que una variable entera ocupa la mitad de memoria que un número decimal. Pues bien, una variable lógica (TRUE
o FALSE
) ocupa cuatro veces menos memoria que una entera y ocho veces menos que un número decimal. Por eso es preferible usar TRUE
o FALSE
siempre que sea posible.
Tal vez te preguntes: ¿y qué importa ese pequeño ahorro de memoria si mi servidor tiene 8 GB de RAM? Imagina que en tu sitio web hay 1000 variables enteras que podrían ser lógicas. Solo estas variables consumirían 4 MB de memoria por visita. Si las conviertes a lógicas, gastarías solo 1 MB. Ahora, imagina que el sitio recibe 100 usuarios simultáneos: serían 400 MB usando enteros y solo 100 MB con lógicas. Una diferencia de 300 MB. Aunque es un ejemplo simplificado, el principio es claro.
Además, PHP convierte automáticamente las variables lógicas a enteras si es necesario.
<?php $var1 = TRUE; $var2 = TRUE + 1; echo $var2; ?>El resultado será 2, es decir, PHP suma sin problema un valor lógico y un número. No hay que temer incompatibilidades de tipo.