За последние 24 часа нас посетили 94742 программиста и 5606 роботов. Сейчас ищут 2439 программистов ...

Непредсказуемое поведение РНР

Тема в разделе "PHP для новичков", создана пользователем Nubbie, 13 янв 2018.

  1. Nubbie

    Nubbie Новичок

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

    Nubbie Новичок

    С нами с:
    13 янв 2018
    Сообщения:
    3
    Симпатии:
    0
    Всё, разобрался . РНР не виноват (отчасти :)). Совсем забыл, что в именах переменных допустимы символы с кодами 127-255. Поискал в исходнике - нашёл несколько русских букв "е" в именах :mad:. В частности, в первом примере третья $ent с русской "e". Как они попали в имена - хз, скорее всего, заскочил разок в текст с русской раскладкой, клацнул разок, а потом уже копипаст нужных имён.
    Всем спасибо, кто хотел высказать мысли по поводу моей тупости, но не успел)
    Тему можно закрывать.
     
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.012
    Симпатии:
    1.679
    Адрес:
    :сердА
    Бывает. Программируй в IDE, пользуйся отладкой.
     
  4. Nubbie

    Nubbie Новичок

    С нами с:
    13 янв 2018
    Сообщения:
    3
    Симпатии:
    0
    Так-то оно так, но я раз в полгода ваяю пару скриптиков на пару сотен строк, и обычно всегда хватало блокнота и стандартных средств отладки. Но после этого случая начал уже подумывать и об IDE.