We will face two cases while calling the parent constructor method in child class.
Case1
We can't run directly the parent class constructor in child class if the child class defines a constructor. In order to run a parent constructor, a call to parent::__construct() within the child constructor is required.
Example
<?php class grandpa{ public function __construct(){ echo "I am in Tutorials Point"."\n"; } } class papa extends grandpa{ public function __construct(){ parent::__construct(); echo "I am not in Tutorials Point"; } } $obj = new papa(); ?>
Output: I am in Tutorials Point I am not in Tutorials Point
Explanation
In the above example, we have used parent::__construct() to call the parent class constructor.
Case2
If the child does not define a constructor then it may be inherited from the parent class just like a normal class method(if it was not declared as private).
Example
<?php class grandpa{ public function __construct(){ echo "I am in Tutorials point"; } } class papa extends grandpa{ } $obj = new papa(); ?>
Output
I am in Tutorials point
Explanation
Here the parent class is called implicitly because in child class we have not declared any constructor function in child class.