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 How to add Read More Read Less Button using JavaScript? #3 Solution to “TypeError: ‘x’ is not iterable” in Angular 9 #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

#Jan 17 4 advanced ways to search Colleague #Jan 16 Colleague UI Basics: The Search Area #Jan 16 Colleague UI Basics: The Context Area #Jan 16 Colleague UI Basics: Accessing the user interface #Jan 14 How to display a student’s individual transcript in Colleague? #Jan 11 How to install PuTTY on a MacOS?
You might also like these
What are CSS Specificity Rules and how does browser apply them?CSSWhat is Conditional Rendering in React?ReactHow to implement NSNumberFormatter in Swift for currency?SwiftSolution to the error “Visual Studio Code can’t be opened because Apple cannot check it for malicious software”MiscellaneousThe SQL UNION OperatorSQL/MySQLNATURAL JOIN in PostgresPostgresHow to create a sticky menu pin using CSS?CSSHow to create a circle that follows a cursor using JavaScript and CSS?CSSHow to make a curtain slider using jQuery and CSS?CSSLearn how to add Scroll Indicator using CSS and JavaScript?CSSHow does @extend rule work in SCSS (Sass)?SCSSHow to use [] (square brackets) function in Envision Basic?Envision Basic