Yogesh Chauhan's Blog

PHP __construct() function

in PHP on June 9, 2021

Just like JavaScript constructor, PHP constructor initializes object’s properties when you create an object.

To add a constructor, you need to add a __construct() function in the class. So, when you create an object using that class, PHP will automatically call the __construct() function.

One of the advantage of adding a constructor is that you don’t need to add set_name() method and call it.

Syntax


__construct (optional values)


You can pass multiple values with different types of variables, though it’s optional. You can skip passing any values. It doesn’t have any return values.

PHP __construct() function example


<?php
class Car {
  public $make;
  public $model;

  function __construct($make,$model) {
    $this->make = $make; 
    $this->model = $model; 
  }
  function get_name() {
    return $this->make;
  }
  function get_model() {
    return $this->model;
  }
}

$car1 = new Car("Honda","Accord");
echo "The model for " . $car1->get_name() . " is " . $car1->get_model();
//The model for Honda is Accord
?>



What happens when there’s a child class?

When you define a child class constructor, the parent constructors are NOT called implicitly.

If you want to call the parent class constructor then use this inside child constuctor:


...
parent::__construct()
...


If the child class doesn’t have a constructor defined then it may be inherited from the parent class.


PHP __construct() function example with inheritance

Here’s a really good example from PHP official docs to understand the constructor with inheritance.


<?php
class BaseClass {
    function __construct() {
        print "In BaseClass constructor\n\n";
    }
}

class SubClass extends BaseClass {
    function __construct() {
        parent::__construct();
        print "In SubClass constructor\n\n";
    }
}

class OtherSubClass extends BaseClass {
    // inherits BaseClass's constructor
}

// In BaseClass constructor
$obj = new BaseClass();

// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass();

// In BaseClass constructor
$obj = new OtherSubClass();
?>



Most Read

#1 How to check if radio button is checked or not using JavaScript? #2 Solution to “TypeError: ‘x’ is not iterable” in Angular 9 #3 How to add Read More Read Less Button using JavaScript? #4 How to uninstall Cocoapods from the Mac OS? #5 PHP Login System using PDO Part 1: Create User Registration Page #6 How to Use SQL MAX() Function with Dates?

Recently Posted

#Aug 15 Is PHP still good for back-end programming? #Aug 10 How to create a multisite network in WordPress? #Aug 3 How to create a circle that follows a cursor using JavaScript and CSS? #Aug 3 How to make a curtain slider using jQuery and CSS? #Aug 2 How to progressively load images and add a blurry placeholder? #Aug 1 How to create a placeholder loader (throbber) using CSS?
You might also like these
How to create a new HTML element programmatically using JavaScript?HTMLPHP __construct() functionPHPShould we ever delete data from a database?MiscellaneousHow To Create a Fullscreen Background Video using CSS and JavaScript?CSSLEFT JOIN in PostgresPostgresCommon Table Expressions (CTE) in PostgreSQLPostgres@forward modules with a prefix in SCSS (Sass)SCSSWhat is the best way to add JavaScript Code into HTML?HTMLHow to get user’s Browser and Operating Systems information using PHP?PHPWindow setInterval() Method in JavaScriptJavaScriptWhat does Containment mean in React?ReactWhat are CSS Specificity Rules and how does browser apply them?CSS