Computer >> Computer tutorials >  >> Programming >> PHP

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

<?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

<?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

<?php
class a{
   function __construct(){
      echo "this is a constructor of base class\n";
   }
}
class b extends a{
   function __construct(){
      parent::__construct();
      echo "this a constructor class b\n";
   }
}
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

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

Output

This will show following result

object is initialized
object is destroyed