PHP: Ejemplo de mal lenguaje

Supongamos que tenemos 5 variables a, b, c, d y e. Y que todas y cada una de las siguientes evaluaciones devuelven TRUE.

$a === $b
$b === $c
$c === $d
$d === $e

Además si hacemos lo siguiente:

var_dump($a);
var_dump($b);
var_dump($c);
var_dump($d);
var_dump($e);

Obtenemos exactamente la misma definición, repetida 5 veces, por salida estándar.

Llegados a este punto, hemos analizado -todo lo que el lenguaje nos permite- nuestras 5 variables. Todas parecen ser idénticas, no hay ninguna propiedad en ellas que podamos medir y que nos permitan diferenciar unas de otras.

Sin embargo, al hacer lo siguiente:

$b = new stdClass;

Al volver a repetir las evaluaciones iniciales el resultado es el siguiente:

$a === $b //FALSE
$b === $c //TRUE
$c === $d //TRUE
$d === $e //TRUE

En conclusión: 5 entidades que según el lenguaje son idénticas y por lo tanto, deben comportarse de la misma forma, tienen un comportamiento diferente; debido a propiedades internas imposibles de discernir en la capa de código.

Este es un claro ejemplo de pésimo diseño a nivel de lenguaje y, por supuesto, una fuente potencial de fuertes dolores de cabeza para cualquier programador.

Como pequeño ejercicio: ¿alguien sabe cómo hay que inicializar las 5 variables para que se comporten de la forma descrita?


Si te gusta esta entrada... compártela! 😉
Tweet about this on TwitterShare on Facebook0Share on Google+0Share on Tumblr0Pin on Pinterest0Share on LinkedIn0Share on Reddit0

Responder

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Límite de tiempo se agote. Por favor, recargar el CAPTCHA por favor.