在PHP中调用父的构造函数

Rya*_*ton 10 php oop subclass

我有以下两个班级.

class Settings
{
    function __CONSTRUCT()
    {
        echo "Settings Construct";
    }
}

class PageManager extends Settings
{
    function __CONSTRUCT()
    {
        echo "PageManager Construct";
    }
}

$page = new PageManager();
Run Code Online (Sandbox Code Playgroud)

我认为这样可以正常工作,但它只运行PageManager的构造函数.我假设它是因为我覆盖了Setting的构造函数.有什么方法可以调用父的构造函数吗?

Izn*_*ood 17

只需使用parent ::

    /* Settings */
class Settings{
 function __CONSTRUCT(){
  echo "Settings Construct";
 }
}

/* PageManager */
class PageManager extends Settings{
 function __CONSTRUCT(){
    parent::__CONSTRUCT();
    echo "PageManager Construct";
 }
}
Run Code Online (Sandbox Code Playgroud)

看一下手册(构造函数和析构函数)!

  • 最好在子构造函数中的所有指令之前调用父构造函数,因此我们确信父对象已准备好使用. (7认同)