PHP Constructors and Destructors


Introduction

In object oriented programming terminology, constructor is a method defined inside a class is called automatically at the time of creation of object. Purpose of a constructor method is to initialize the object. In PHP, a method of special name __construct acts as a constructor.

Syntax

__construct ([ mixed $args = "" [, $... ]] ) : void

Constructor example

This example shows that constructor is automatically executed when object is declared

Example

 Live Demo

<?php
class myclass{
   function __construct(){
      echo "object initialized";
   }
}
$obj=new myclass();
?>

Output

This will produce following result. −

object initialized

Constructor with arguments

Class properties are initialized by constructor with arguments

Example

 Live Demo

<?php
class rectangle{
   var $height;
   var $width;
   function __construct($arg1, $arg2){
      $this->height=$arg1;
      $this->width=$arg2;
   }
   function show(){
      echo "Height=$this->height Width=$this->width";
   }
}
$obj=new rectangle(10,20);
$obj->show();
?>

Output

This will produce following result. −

Height=10 Width=20

Constructor in inheritance

If the parent class has constructor defined in it, it can be called within child class's constructor by parent::__construct. However, if child class doesn't define a constructor, it inherits the same from is base class.

Example

 Live Demo

<?php
class a{
   function __construct(){
      echo "this is a constructor of base class
";    } } class b extends a{    function __construct(){       parent::__construct();       echo "this a constructor class b
";    } } class c extends a {    // } $a=new a(); $b=new b(); $c=new c(); ?>

Output

This will produce following result. −

this is a constructor of base class
this is a constructor of base class
this a constructor class b
this is a constructor of base class

Destructor

Destructor is a method automatically as soon as garbage collector fins that a particular object has no more references. In PHP, destructor method is named as __destruct. During shutdown sequence too, objects will be destroyed. Destructor method doesn't take any arguments, neither does it return any data type

Example

 Live Demo

<?php
class myclass{
   function __construct(){
      echo "object is initialized
";    }    function __destruct(){       echo "object is destroyed
";    } } $obj=new myclass(); ?>

Output

This will show following result

object is initialized
object is destroyed

Updated on: 18-Sep-2020

6K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements