Acessador de matriz de PHP Gotcha / comportamento inesperado

Ok, então eu programo em PHP desde os 15 anos (puta merda! 8 anos !!!), e como eu normalmente verifico as variáveis ​​antes de usá-las, nunca percebi esse comportamento no meu código:

Código:

<?php

error_reporting
(-1);

$null
= null;
$arr
= array();
$str
= 'string';
$int
= 7;
$dbl
= 7.3;
$bool
= true;
$obj
= new stdClass();

echo $null
['nope'];
echo $null
['nope']['sure'];

echo $arr
['nope'];
echo $arr
['nope']['sure'];

echo $str
['nope'];
echo $str
['nope']['sure'];

echo $int
['nope'];
echo $int
['nope']['sure'];

echo $dbl
['nope'];
echo $dbl
['nope']['sure'];

echo $bool
['nope'];
echo $bool
['nope']['sure'];

echo $obj
['nope'];
echo $obj
['nope']['sure'];

Resultado:

Notice: Undefined index: nope in /in/dNmX4 on line 16

Notice: Undefined index: nope in /in/dNmX4 on line 17

Warning: Illegal string offset 'nope' in /in/dNmX4 on line 19
s

Warning: Illegal string offset 'nope' in /in/dNmX4 on line 20

Warning: Illegal string offset 'sure' in /in/dNmX4 on line 20
s

Fatal error: Cannot use object of type stdClass as array in /in/dNmX4 on line 31

Process exited with code 255.

Sim …. então eu acho que você pode apenas usar YOLO e acessar null‘s, inteiros, flutuantes e até booleanos como matrizes , e eles nem mesmo geram um aviso estrito …
WAT!? !!

Caso você esteja curioso sobre como isso é tratado em diferentes versões, você pode ver a saída em várias versões do PHP aqui:
http://3v4l.org/dNmX4