PHP - extended __construct PHP - extended __construct php php

PHP - extended __construct


The parent __construct() method defined in class b will run automatically if you instantiate child class a, unless there is a __construct() method defined in class a.

class a extends b { } class b {    public function __construct()    {       echo 'In B Constructor';    } } $x = new a();

If a __construct() method is defined in class a, then this overrides the use of the __construct() method in class b.... it will run instead of the class b __construct() method

class a extends b {    public function __construct()    {       echo 'In A Constructor';    } } class b {    public function __construct()    {       echo 'In B Constructor';    } } $x = new a();

So if your child class has a __construct() method defined, then you need to explicitly call the constructor for the parent if you want to execute that as well.

class a extends b {    public function __construct()    {       parent::__construct();      echo 'In A Constructor';    } } class b {    public function __construct()    {       echo 'In B Constructor';    } } $x = new a();


I'm not sure I fully understand what you are asking, but you can call the parents construct method from the child's constructor

parent::__construct();

That's the only option I know of.


Call parent::__construct() in a::__construct():

class a extends b{   public function __construct()   {       parent::__construct();   }      public function validateStuff()   {      $this->insert_record();   }}

You can omit a's constructor altogether if you're not doing any a-specific stuff.