我需要让PHP中的一个类构造函数调用其父级的parent's(祖级?)构造函数,而不调用父构造函数.

// main class that everything inherits
class Grandpa 
{
    public function __construct()
    {

    }

}

class Papa extends Grandpa
{
    public function __construct()
    {
        // call Grandpa's constructor
        parent::__construct();
    }
}

class Kiddo extends Papa
{
    public function __construct()
    {
        // THIS IS WHERE I NEED TO CALL GRANDPA'S
        // CONSTRUCTOR AND NOT PAPA'S
    }
}

我知道这是一件奇怪的事情,我正试图找到一种不难闻的方法,但不管怎样,我很好奇这是否可能.

推荐答案

丑陋的解决方法是将一个布尔参数传递给Papa,表明您不希望解析它的构造函数中包含的代码.即:

// main class that everything inherits
class Grandpa 
{
    public function __construct()
    {

    }

}

class Papa extends Grandpa
{
    public function __construct($bypass = false)
    {
        // only perform actions inside if not bypassing
        if (!$bypass) {

        }
        // call Grandpa's constructor
        parent::__construct();
    }
}

class Kiddo extends Papa
{
    public function __construct()
    {
        $bypassPapa = true;
        parent::__construct($bypassPapa);
    }
}

Php相关问答推荐

在PHP中替换数组中的文本并同时使用其他函数

无法使用DOMPDF在PDF中呈现非ANSI字符

显示WooCommerce当前产品类别或标签的短代码

致命错误:未捕获错误:Google\Auth\HttpHandler\HttpHandlerFactory::build()

在WooCommerce产品变体SKU字段旁边添加自定义输入字段

如何在Foreach语句中使用php和li按降序排序?

将客户重定向到自定义感谢页后的空白页

WooCommerce在购物车项目中复制产品而不增加产品数量

获取作者';在WordPress中使用PHP

Regex|PHP捕获json字符串中的每个非法双引号

更改特定产品标签的 Woocommerce 产品名称

如何用十进制和字母数字减go 和添加 id

Laravel 在数据库上显示加密列

WooCommerce:如果订单总数为零,则隐藏本地取货运输选项

过滤会员计划标题和标签

如何更新 Laravel Eloquent 列强制转换为集合

PHP 解析 XML 以获取多个深度的所有字符串值

使用 wp_footer 挂钩添加一些 CSS 不起作用

来自命令行的 PHP 没有给出正确的结果

我想更新表格中的结果并将它们发布到浏览器,但它不起作用