本文介绍了如何让 PHP 类构造函数调用其父级的父级构造函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要在 PHP 中有一个类构造函数调用其父级的父级(祖父级?)构造函数,而不调用父级构造函数.
I need to have a class constructor in PHP call its parent's parent's (grandparent?) constructor without calling the parent constructor.
// 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 } }我知道这是一件很奇怪的事情,我正在尝试找到一种不难闻的方法,但尽管如此,我很好奇是否有可能.
I know this is a bizarre thing to do and I'm attempting to find a means that doesn't smell bad but nonetheless, I'm curious if it's possible.
推荐答案丑陋的解决方法是将布尔参数传递给 Papa,表明您不希望解析其构造函数中包含的代码.即:
The ugly workaround would be to pass a boolean param to Papa indicating that you do not wish to parse the code contained in it's constructor. i.e:
// 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 类构造函数调用其父级的父级构造函数?
发布评论