I was wondering if you could help me out..
I have two classes, one extends the other.. Class B will be extended by various different objects and used for common database interactions.. Now I would like class B to handle its connect and disconnects without direction from class A or any external input..
The problem from what I understand is that an extended class won't automatically run its __construct function.. Is there a way around this?
Thanks in advance..
class a extends b {    public function __construct()    {    }        public function validateStuff()    {       $this->insert_record();    } }  class b {    public function __construct()    {       $this->connect();    }     protected function connect()    {       return true;    }     public function insert_record()    {       return true;    } } 
                PHP - The __construct FunctionA constructor allows you to initialize an object's properties upon creation of the object. If you create a __construct() function, PHP will automatically call this function when you create an object from a class. Notice that the construct function starts with two underscores (__)!
Example# __construct() is the most common magic method in PHP, because it is used to set up a class when it is initialized. The opposite of the __construct() method is the __destruct() method. This method is called when there are no more references to an object that you created or when you force its deletion.
Note: PHP lacks support for declaring multiple constructors of different numbers of parameters for a class unlike languages such as Java.
We can do this by using the special function call parent::__construct(). The "parent" part means "get the parent of this object, and use it", and the __construct() part means "call the construct function", of course. So the whole line means "get the parent of this object then call its constructor".
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(); 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With