php – 如果子类没有定义构造函数,调用父构造函数?

前端之家收集整理的这篇文章主要介绍了php – 如果子类没有定义构造函数,调用父构造函数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
PHP Constructors and Destructors documentation它说

Note: Parent constructors are not called implicitly 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.

但是,如果子类不调用构造函数,父构造函数是否仍然被调用?还是应该创建一个调用父构造函数的构造函数

IE:

class BaseClass {
   function __construct() {
       print "In BaseClass constructor\n";
   }
}

class SubClass extends BaseClass {
   function __construct() {
       parent::__construct();
   }
}
也许这是一个很明显的,但是一些环顾四周,直接回答这个问题令人惊讶的是不是很容易找到,所以这里是:

如果子类没有定义构造函数,那么父构造函数将被调用.

在下面的示例中,$obj仍将从BaseClass调用构造函数,因为SubClass从未调用构造函数.

class BaseClass {
    function __construct() {
       print "In BaseClass constructor\n";
    }
}

class SubClass extends BaseClass {
    //I do not have a constructor :(
}

$obj = new SubClass();

猜你在找的PHP相关文章