Hoy veremos un PHP WTF que me ha llamado mucho la atención y es el comportamiento de PHP ante los incrementos y decrementos con valores NULL.
Véase el siguiente:
<?php $a = [NULL,NULL,NULL,NULL]; $a[0]++; ++$a[1]; $a[2]--; --$a[3]; var_dump($a); ?>
Contra toda expectativa, el resultado es el siguiente:
array(4) { [0]=> int(1) [1]=> int(1) [2]=> NULL [3]=> NULL }
Los incrementos los realiza, pero los decrementos no. ¿La explicación? La tenemos como casi siempre en la documentación de PHP http://ca3.php.net/manual/en/language.operators.increment.php parece que los decrementos de null no los realiza y los incrementos los deja con valor ‘1’.