Рубрики
Uncategorized

Когда PHP вызывает __destruct()?

В PHP __construct() вызывается при создании объекта, а __destruct() вызывается при создании объекта… Помеченный php.

В PHP __construct() вызывается при создании объекта и __destruct() вызывается при удалении объекта из памяти. Используя эти знания, мы можем создавать более плавные API, как продемонстрировал Фрик Ван дер Хертен в этом коротком видео .

Теперь давайте посмотрим, когда PHP точно вызывает __destruct() .

Объект удаляется из памяти, если вы явно удаляете его:

$object = new Object();

unset($object); // __destruct will be called immediately.

$object = null; // __destruct will be called immediately.

Он также вызывается, когда область, в которой срок службы объекта подходит к концу, например, в конце метода контроллера:

function store(Request $request)
{
   $object = new Object();

   User::create(...);

   // __destruct will be called here.

   return view('welcome');
}

Даже если мы находимся в рамках длительного процесса, например, задания в очереди, __destruction будет вызван до окончания метода дескриптора:

function handle()
{
   $object = new Object();

   User::create(...);

   // __destruct will be called here.
}

Он также будет вызван, когда сценарий завершается:

function handle()
{
   $object = new Object();

   User::create(...);

   // __destruct will be called here.

   exit(1);
}

Оригинал: “https://dev.to/themsaid/when-does-php-call-destruct-1167”