PHP - extended __construct

后端 未结 3 996
广开言路
广开言路 2021-01-31 08:09

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 databas

3条回答
  •  萌比男神i
    2021-01-31 09:01

    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();
    

提交回复
热议问题