В PHP у меня есть error_reporting
, чтобы сообщать обо всем, включая уведомления.Почему PHP не жалуется, когда я обрабатываю нулевое значение как массив?
Почему следующие уведомления не выдают никаких уведомлений, ошибок или чего-либо еще?
$myarray = null;
$myvalue = $myarray['banana'];
Устранение неполадок шаги:
$myarray = array();
$myvalue = $myarray['banana'];
// throws a notice, as expected ✔
$myarray = (array)null;
$myvalue = $myarray['banana'];
// throws a notice, as expected ✔
$myarray = null;
$myvalue = $myarray['banana'];
// no notice or warning thrown, $myvalue is now NULL. ✘ Why?
Возможно, это ошибка в PHP, или я просто не понять что-то о том, как это работает.
+1 для юникода ✔ – Cyclone
PHP на самом деле не самый * логический * язык, когда дело доходит до типов данных: http://me.veekun.com/blog/2012/04/09/php-a -fractal-of-bad-design/ – Blender
Я согласен с @Blender: он обычно делает то, что делает наиболее разумным, делая все возможное, учитывая то, что он знает. Это часто довольно удобно, если не беспокоить любого, у кого есть тривиальные ошибки. – wallyk