Which Data Type Is Used to Hold the Reference of Resource That Are External to PHP?


Larry Thompson

Which Data Type Is Used to Hold the Reference of Resources That Are External to PHP?

In PHP, when dealing with resources that are external to the PHP script itself, such as database connections, file handles, or network sockets, a specific data type called “resource” is used to hold their references. This data type is unique to PHP and provides a way to manage and manipulate these external resources efficiently.

Understanding Resources in PHP

Resources in PHP are special variables that hold references to external entities. These entities can be anything from database connections established with functions like mysqli_connect(), file handles created using fopen(), or network sockets created using functions like fsockopen().

When an external resource is created or opened in PHP, it is assigned a unique identifier by the underlying system. The resource variable in PHP holds this identifier, allowing us to perform various operations on the resource.

The Resource Data Type

In PHP, the resource data type represents these references to external resources. When you use a function that returns a resource, such as fopen(), the returned value is of type “resource”.

To declare a variable as a resource, you don’t need any specific syntax. It happens implicitly when assigning the return value of functions that deal with external resources.

For example:

$fileHandle = fopen("myfile.txt", "r");
$databaseConnection = mysqli_connect("localhost", "username", "password");
$networkSocket = fsockopen("www.example.com", 80);

In the code snippet above, three different variables are declared and assigned values returned by functions dealing with external resources. Each of these variables is of type “resource”.

Working with Resource Variables

Once you have a resource variable, you can perform various operations on the associated external resource using specific functions provided by PHP for that purpose.

For example, if we have a file handle stored in the $fileHandle variable, we can read or write data to the file using functions like fread() or fwrite(). Similarly, if we have a database connection stored in the $databaseConnection variable, we can execute SQL queries using functions like mysqli_query().

The key point to remember is that resource variables hold references to external resources and allow us to operate on them. However, these variables are not meant to be manipulated directly like regular variables.

Closing Resources

To release system resources and free up memory, it’s important to close resources when they are no longer needed.

For example:


The above code snippet shows how to close different types of resources. Closing resources properly ensures that any pending operations are completed, and system resources are freed up for other processes.


  • Closing resources is not always necessary as PHP automatically handles resource cleanup when a script finishes execution. However, it’s considered good practice to explicitly close resources when they are no longer required.
  • Failing to close certain types of resources (e.g., database connections) may lead to unexpected behavior or resource leaks.


In PHP, the “resource” data type is used to hold the references of resources that are external to PHP. These resources include database connections, file handles, and network sockets. By using the appropriate functions and managing resources properly, you can effectively interact with these external entities and ensure efficient resource utilization in your PHP applications.

Discord Server - Web Server - Private Server - DNS Server - Object-Oriented Programming - Scripting - Data Types - Data Structures

Privacy Policy