PHP 8.5.3 Released!

Ресурсы

Resource — переменная, которая хранит ссылку на внешний ресурс. Ресурсы создают и передают в отдельный набор функций для работы с ресурсами. Список этих функций и типы ресурсов (resource), которые соответствуют функциям, перечисляет приложение.

Смотрите также описание функции get_resource_type().

Преобразование в ресурс

Поскольку переменные с типом resource хранят дескрипторы открытых файлов, соединений с базой данных, областей холста изображения и т. п., преобразование в ресурс (resource) бессмысленно.

Освобождение ресурсов

Сборщик мусора автоматически обнаруживает и освобождает ресурсы, на которые не осталось ссылок, за счёт системы подсчёта ссылок, которая составляет часть движка Zend Engine. Поэтому освобождать память вручную приходится редко.

Замечание: Постоянные подключения к базам данных — исключение из этого правила. Сборщик мусора не уничтожает такие ссылки. Дополнительную информацию даёт раздел о постоянных соединениях.

Добавить

Примечания пользователей 1 note

up
0
mrmhmdalmalki at gmail dot com
2 days ago
The resource is not a type you can create; it is a PHP internal type that PHP uses to refer to some variables.

For example, 

You have a number 5.5, which is a Float, and you can convert it to an int type, but you cannot convert it to a resource.

A resource type is used for external resources, like files or database connections, as shown below:

<?php

// a normal variable
$file_resource = fopen("normal_file.txt", "r");

// after we assigned an external file to that variable using the function fopen,
// PHP starts dealing with the file, and since it is an external resource,
// PHP makes the type of the variable a resource that refers to that operation

var_dump($file_resource);

// the previous var_dump returned bool(false),
// because there was no file that PHP could open.
// and it gave me this warning:
// PHP Warning: fopen(normal_file.txt): Failed to open stream: No such file or directory

// now I am trying to open an existing file
$file_resource = fopen("existed_file.txt", "r");

// then check the type:
var_dump($file_resource);

// it gives this:
// resource(5) of type (stream)
// now the variable's type is resource

?>
To Top