Здравствуйте. На PHP пишу давно (4-5 версии), но нерегулярно. Локально поставил РНР 7.2.1, windows 7. Начал кодить, и в какой-то момент (исходники выросли уже до 30Кбайт) понял, что происходит какая-то жуткая фигня. Провозился целый день, в итоге получилось вот что. Хочу очистить временный массив перед дальшейшим заполнением. Но: PHP: <?php $ent=array(); $ent[]="1"; $ent[]="2"; $ent=array(); print_r($ent); ?> Выдаёт: Код (Text): Array ( [0] => 1 [1] => 2 ) То есть массив не очищается. . И вот это тоже не действует, то есть массив не удаляется: Код (Text): unset($ent); Опытным путём было найдено, что действует только вот это: Код (Text): $ent=null; $ent=array(); От имени массива эффект не зависит, но на однобуквенных именах не проявляется. Но что же это за фигня?! Или я что-то в РНР совсем не понимаю, или это баг такой?
Всё, разобрался . РНР не виноват (отчасти ). Совсем забыл, что в именах переменных допустимы символы с кодами 127-255. Поискал в исходнике - нашёл несколько русских букв "е" в именах . В частности, в первом примере третья $ent с русской "e". Как они попали в имена - хз, скорее всего, заскочил разок в текст с русской раскладкой, клацнул разок, а потом уже копипаст нужных имён. Всем спасибо, кто хотел высказать мысли по поводу моей тупости, но не успел) Тему можно закрывать.
Так-то оно так, но я раз в полгода ваяю пару скриптиков на пару сотен строк, и обычно всегда хватало блокнота и стандартных средств отладки. Но после этого случая начал уже подумывать и об IDE.