PHP+Apache: глюк?
Сегодня столкнулся с совершенно с чудовищным по своей странности багом.
Есть код. Простейший.
$a = array('' => 'value');
$key = '';
$falseKey = false;
$falseKey = (string)$falseKey; // $falseKey === '' будет true
var_dump(isset($a[$key]));
var_dump(isset($a[$falseKey]));
Вы думаете, что в обоих случаях код выведет true?
А вот и нет.
Существуют какие-то глюки в связке модуля пхп и апача, которые приводят к тому, что во втором случае код выдаст false.
Это не вылечилось перезагрузкой апача. Вылечилось лишь его полной остановкой и запуском.
Любопытно, что данный баг воспроизвелся лишь на одном сервере. На других абсолютно идентичных он не воспроизводился.
UPD (13.12.2015):
Таки “автором” этого глюка выступило расширение xdebug. К сожалению детального разбора проблемы я не осуществлял. Просто если вы встретились с неверным пониманием языком типов переменных, то смотрите в сторону xdebug.
Категории: Разработка