HOWTO · PHP

Constructor in PHP

This article shows how the PHP constructor can initialize the properties of an object created in a class.

On this page

In this tutorial, we will introduce the PHP constructor. We will see how you can use the __construct() function to initialize the properties of an instance in a class.

We will also use the function to initialize the properties of objects with given parameters in a class.

Last, we will see how you can initiate an object in a child class and call the parent class constructor when both classes have individual constructors.

Use the PHP Constructor to Initialize the Properties of an Object in a Class

In the example below, we will create a class Student and use the __construct function to assign new Student its properties.

The __construct function reduces the number of codes associated with using the function set_name().

<?php

class Student {
	// Define the attributes of your class
	
	public $name;
	public $email;
// Initialize the properties of the object you want to create in this class

function __construct($name, $email) {
	$this->name = $name;
	$this->email = $email;
}

function get_name() {
	return $this->name;
}

function get_email() {
	return $this->email;
}
}
$obj = new Student("John", "john567@gmail.com");
echo $obj->get_name();
echo "<br>";
echo $obj->get_email();
?>

Output:

John
john567@gmail.com

Use the PHP Constructor to Initialize the Properties of an Object with Parameters in a Class

In the example code below, we create the class Military and use the __construct function to give the properties and parameters of the objects we create.

<?php
class Military {
	// Define the attributes of the class 'Military'
	
	public $name;
	public $rank;
	
	function __construct($name, $rank){
		$this->name = $name;
		$this->rank = $rank;
	}
	function show_detail() {
		echo $this->name." : ";
		echo "Your Rank is ".$this->rank."\n";
	}
}
$person_obj = new Military("Michael", "General");
$person_obj->show_detail();
echo "<br>";
$person2 = new Military("Fred", "Commander");
$person2->show_detail();
?>

Output:

Michael : Your Rank is General
Fred : Your Rank is Commander

Initiate an Object in a Child Class and Call the Parent Class Constructor When Both Classes Have Individual Constructors in PHP

<?php
class Student
{
	public $name;
	public function __construct($name)
	{
		$this->name = $name;
	}
}class Identity extends Student
{
	public $identity_id;
	
	public function __construct($name, $identity_id)
	{
		parent::__construct($name);
		$this->identity_id = $identity_id;
	}
	function show_detail() {
		echo $this->name." : ";
		echo "Your Id Number is ".$this->identity_id."\n";
	}
}
$obj = new Identity('Alice', '1036398');
echo $obj->show_detail();
?>

Output:

Alice : Your Id Number is 1036398

The class Identity extends the class Student in the code above. We use the keyword parent: to call the constructor for the Student class.