In this Tutorial, we are going to learn about Complete Tutorials of PHP OOP Destructor with Example code. Through this we will learn about the concept about Destructor. But first let me give you a brief explanation of what is Object-oriented programming (OOP)?
What is Object-oriented programming (OOP)
Object-oriented programming consists of combining a set of variables (properties) and functions (methods), which are referred to as an object. These things are arranged into classes in which individual items can be combined. OOP can enable you to consider the objects and the many activities in connection with the objects in a program’s code.
for more details you can go on my previous article Read More. [Object-oriented programming (OOP) Concept Simplified!]
What is Destructor Function in PHP?
Destructor is also a specific member function that is precisely the opposite of the Constructors method and is called if a class instance is removed from the memory. Destructors are methods invoked when there is no reference to an object of class, or when it is deliberately released, or when it is not inside scope (
__destruct (void): void).
They have no types or value of return. It’s called shortly after the executing control exits the block before de-allocating the memory for an object, or during the execution of a PHP script.
When all references to a specific object are deleted, or the object is deliberately destructed in any order in the shutdown sequence, the destructor method will be called.
When the whole script or code is finished, global objects are removed. The destructor method will be used to purify your resources before releasing the memory or shutting files once the code no longer need them. PHP Garbage Collector manages the automated deletion of class objects.
Why we Working of Destructor in PHP?
Destructor is essentially controlled by the garbage collector that clears an item if it is no longer necessary. In contrast to the constructor, it cannot take arguments as his input.
This approach is also utilized for resource cleanup and memory free to accommodate more. Overloading with destroyers is not possible and only one destroyer in the same class may exist. Another unusual characteristic of it is that the destroyer is continuously being called even if the script has ceased running using the
exit() command. This
exit() does not enable stopping the remaining shutdown procedures.
What are the Advantages of Destructors?
- Destroyers help to release memory space by ensuring that freshly formed objects have the needed space, or that resources are available for any other task.
- Makes sure all jobs are efficient as the cleanup procedure is taken care of.
- In the cases of several variables and structures, using destructors helps to prevent memory leaks through the release of internal resources.
- It efficiently enhances the efficiency and makes programmes highly beneficial for cleaning up task.
- Static and local variables are taken care in this functions.
What are the Limitations of Destructors?
- Destructors can’t take parameters and don’t offer a value return (not even void).
- Destructors do not allow for inheritance.
- It is not necessary for a destructor to be static.
- It is not feasible to refer to a destructor’s address.
- A union member cannot be an object that belongs to the class that contains the destructor.
- A destructor function must be accessible to the whole public.
How to Create a destructor method in PHP?
In PHP, you use the
public keyword, then
__destruct() to construct a destructor method. The word
destruct( ) has two underscores (__).
A destructor method in the PHP programmer below reports that the object is being removed and decrements the count of a variable that records the number of objects in a class. This is because every time a destructor is invoked, an object is erased, therefore we want to reduce the number of objects by1.
Some explanation of the examples:-
Step1:- We define and initialize a static
$count variable in the first line of this class. The number of objects in the class will be kept in this variable.
Step2:- We make a function method, which is invoked when an object is created. The
$year of the car are two parameters that we supply into the function method since the objects represent vehicles. Using the
$this keyword, we save the values into the
$year variables based on the data supplied in. Then we go to the static count variable and add one to it. This is due to the fact that the function is only invoked when a new object is created.
Step3:-The destructor method is then created. There are no parameters accepted by a destructor method. As a result, it’s always
Step4:- We output that the object is being removed in this destructor procedure. The static property $count also decrements 1. We decrease the count 1 since this variable maintains track of the number of objects in a class, and an object is currently being destroyed.
Step5:- The following is a list of five items that we make to symbolize car. The constructor function is called for each object that is created. This is where each car’s type and year are assigned. It also increases the value of the static
$count property, which now has the value of 5. (due to 5 objects).
Step6:- We then use the PHP
unset() method to remove the
$car4 object. The PHP
__destruct() function is automatically triggered when this happens. The item is being removed, according to this function. We also decrease the value of the static
$count property 1, resulting in a value of 4.
Step7:- That’s all there is to creating a destructor method in PHP.
Step8:- When an object is removed with the PHP unset() function, a destructor method is invoked once again. It will also be called when a script is finished.
Step9:- That’s all there is to creating a destructor method in PHP.
Step10:- The outcome from running the PHP code above is displayed below.
Comparison between __constructors and __destructors:
|Accepts one or more arguments.||No arguments are passed. Its void.|
|function name is _construct().||function name is _destruct()|
|Constructor is involved automatically when the object is created.||Destructor is involved automatically when the object is destroyed.|
|Used to initialize the instance of a class.||Used to de-initialize objects already existing to free up memory for new accommodation.|
|Used to initialize data members of class.||Used to make the object perform some task before it is destroyed.|
|Constructors can be overloaded.||Destructors cannot be overloaded.|
|It is called each time a class is instantiated or object is created.||It is called automatically at the time of object deletion .|
|Allocates memory.||It deallocates memory.|
|Multiple constructors can exist in a class.||Only one Destructor can exist in a class.|
|If there is a derived class inheriting from base class and the object of the derived class is created,|
the constructor of base class is created and then the constructor of the derived class.
|The destructor of the derived class is called and then the destructor of base class just the reverse order of|
|The concept of copy constructor is allowed where an object is initialized from the address of another object .||No such concept is allowed.|
Constructors and Destructor methods are incredibly valuable in the actual world of programming since they make highly important jobs easy to code. These enhance code reusability without needless duplication. Even though they aren’t declared in the class, the compiler calls them implicitly. Hope this Will help you.