Айнур Саримов

PHP на собеседовании: Всё, что нужно знать


Скачать книгу

= new stdClass();

      $a->b = $b;

      $b->a = $a;

      unset($a);

      unset($b);

      echo "Освобождено объектов: " . gc_collect_cycles() . "\n"; // Освобождено объектов: 2

      print_r(gc_status());

      Вывод:

      Array

      [runs] => 1 // Количество запусков сборщика мусора

      [collected] => 2 // Количество освобожденных объектов

      [threshold] => 10001 // Порог для автоматического запуска сборщика

      [roots] => 0 // Количество корневых объектов

Когда запускается сборщик мусора

      Сборщик мусора в PHP запускается автоматически в следующих случаях:

      1. Когда выделяется определенное количество памяти (зависит от конфигурации PHP).

      2. Когда вызывается функция gc_collect_cycles().

Настройка сборщика мусора

      Поведение сборщика мусора можно настроить с помощью директив в файле php.ini:

      zend.enable_gc: Включает или отключает сборщик мусора (по умолчанию On).

      gc_probability и gc_divisor: Определяют вероятность запуска сборщика мусора.

      По умолчанию:

      gc_probability = 1

      gc_divisor = 100

      Вероятность запуска: gc_probability / gc_divisor (по умолчанию 1%).

      gc_max_root: Максимальное количество корневых объектов, которые могут быть обработаны за один цикл сборки мусора.

Преимущества сборщика мусора

      Автоматическое управление памятью: Разработчику не нужно вручную освобождать память, что снижает вероятность ошибок.

      Устранение утечек памяти: Сборщик мусора обнаруживает и освобождает память, занятую циклическими ссылками.

      Упрощение разработки: Программист может сосредоточиться на логике приложения, не заботясь о ручном управлении памятью.

Недостатки сборщика мусора

      Производительность: Сборка мусора требует дополнительных ресурсов, что может замедлить выполнение программы.

      Недетерминированность: Время освобождения памяти зависит от работы сборщика мусора, что может быть проблемой для приложений с жесткими требованиями к производительности.

Итог

      Сборщик мусора в PHP – это мощный механизм, который автоматически управляет памятью, освобождая объекты, которые больше не используются. Он особенно полезен для устранения утечек памяти, вызванных циклическими ссылками. Хотя сборщик мусора добавляет небольшие накладные расходы, он значительно упрощает разработку и повышает надежность приложений. Для управления сборщиком мусора можно использовать функции, такие как gc_collect_cycles() и gc_status(), а также настраивать его поведение через php.ini.

      Типы данных в PHP

      В PHP поддерживаются различные типы данных, которые можно разделить на скалярные, составные и специальные. Каждый тип данных предназначен для хранения определенного вида информации. Рассмотрим основные типы данных в PHP.

Скалярные типы данных

      Скалярные типы представляют собой простые значения.

      a) Целые числа (Integer)

      Используются для хранения целых чисел (положительных, отрицательных и нуля).

      Пример:

      $age = 25;

      $temperature = -10;

      Конец ознакомительного фрагмента.

      Текст предоставлен ООО «Литрес».

      Прочитайте эту книгу целиком, купив полную легальную версию