Home >>PHP Object Oriented >PHP Constructor and Destructor

PHP Constructor and Destructor

PHP Constructor and Destructor

PHP Constructor, If a class name and function name will be similar in that case function is known as constructor. Constructor is special type of method because its name is similar to class name. Constructor automatically calls when object will be initializing.
<?php

class A

{

function testA()

{

echo "This is test method of class A";

}

function A()

{

echo "This is user defined constructor of class A"."<br/>";

}

}

$obj= new A();

$obj->testA();

?>
 
Output This is user defined constructor of class A This is test method of class A
Note : Here we have called testA() method but we didn't call A() method because it automatically called when object is initialized.
 

Predefine Constructor

PHP introduce a new functionality to define a constructor i.e __construct(). By using this function we can define a constructor. It is known as predefined constructor. Its better than user defined constructor because if we change class name then user defined constructor treated as normal method. Note: if predefined constructor and user defined constructor, both define in the same class, then predefined constructor treat like a Constructor while user defined constructor treated as normal method.  
<?php

class A

{

function A()

{

echo "user defined constructor";

}

function __construct()

{

echo "This is predefined constructor";

}

}

$obj= new A();

?>
 
Output This is predefined constructor

Initialize class property using constructor(Value entered by users)

 
<?php

Class demo
{ 
	
Public $first;

Public $second;
	
function __construct($a,$b)

{

$this->first=$a;

$this->second=$b;

}
		
function add()

{

$add=$this->first+$this->second;

echo "sum of given no=".$add;

}

}

$obj= new demo($_POST['x'],$_POST['y']);

$obj->add();

?>

<form method="post">

enter your first number<input type="text" name="x"/><br/>

enter your second number<input type="text" name="y"/><br/>

<input type="submit" value="+"/>

</form>

Output sum of given no=1500 enter your first number enter your second number

 

Parametrized Constructor

<?php

class employee
{ 
	
Public $name;

Public  $profile;

function __construct($n,$p)

{

$this->name=$n;

$this->profile=$p;

echo "Welcome  ";

}
		
function show()

{

echo $this->name."... ";

echo "Your profile is ".$this->profile."<br/>";

}

}
	
$obj= new employee("shashi","developer");

$obj->show();
	
$obj1= new employee("pankaj","Tester");

$obj1->show();

?>
Output Welcome shashi... Your profile is developer Welcome pankaj... Your profile is Tester
 

Destructor in PHP

The Destructor method will be called as soon as there are no other references to a particular object, or in any order during the shutdown sequence. Destructor automatically call at last. Note : _ _destruct() is used to define destructor.
<?php

class demo

{

function  __construct()

{

echo  "object is initializing their propertie"."<br/>";

}
		
function work()

{

echo  "Now works is going "."<br/>";

}
		

function __destruct()

{

echo  "after completion the work,  object  destroyed automatically";

}

}
	
$obj= new demo();

$obj->work();
	
//to check object is destroyed or not
echo is_object($obj);
?>
Output object is initializing their properties Now works is going 1 after completion the work, object destroyed automatically