• Аналог unset в ООП?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Вы неверно поняли.
    Unset - удаляет переменную
    __destruct выполняется когда все ссылки на переменную освобождены
    <?php
    
    class User {
    
    public $name = "Bankai", $age = 40;
    
    function show(){
    echo "$this->name:$this->age <br>\n";
    }
    
    function __destruct(){
    echo "Деструктор \n";
    }
    };
    
    $obj = new User();
    $obj->show();
    
    $obj2 = $obj;
    unset($obj2);
    var_dump("__destruct not calling");
    unset($obj);
    var_dump("__destruct called");

    Результат:
    Bankai:40 <br>
    string(22) "__destruct not calling"
    Деструктор 
    string(21) "__destruct called"


    Освобождение ссылок на переменную не означает вызов деструктора так как ссылка объект может быть еще в других переменных.

    Деструктор невозможно переписать в процедурном стиле, это чисто объектное поведение.
    Ответ написан
    6 комментариев
  • Как найти кастомный тег html с помощью regex?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Если теги не вложенные, то:
    preg_match_all("#<test:([^>]+)>(.+?)</test:\1>#si", $html, $re);
    Ответ написан
    Комментировать
  • Почему запрос к mysql внутри цикла while выполняется очень долго?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Время получения 40000+ записей из таблицы offers = 0.2s

    Вот такой код отрабатывается за 4s

    то есть в цикле делается 40тыс запросов к таблице clients каждый из который выполняется за 0.0001 sec

    вам точно надо прочитать про JOIN'ы чтобы одним запросом получить все нужные данные
    https://www.w3schools.com/sql/sql_join.asp
    Ответ написан