好的,我有这样的结构:
class Creature{
public function sayHi(){
echo "Hi";
}
}
class HumanType extends Creature(){
}
class Human extends HumanType{
}
class Human232 extends Human{
public function sayHi(){
echo "Hello, bro";
}
}
class Human457 extend Human{
}
$Human = new Human232($id);
echo $Human->sayHi(); //Hello, bro
$Human2 = new Human457($id);
echo $Human2->sayHi(); //Hi
//And then I have this still to be implemented
class HumanCategory576{
public function sayHi(){
echo "Hi from the category!";
}
}
我当然有很多课程,例如: 人类457, 458 人类459, 人600 Human601
并且: 576, 人类类别577, 578, 人类类别579, HumanCategory580
我想做的是以某种方式实现HumanCategory576,以便sayHi()可以打印“类别中的Hi!”。 (前提是)(要是我继承的)Human类没有遍历该函数,例如Human457。
我希望我足够清楚。
我该怎么办?谢谢
答案 0 :(得分:0)
我假设您打算让class
HumanCategory576
扩展另一个课程。
您可以使用is_callable()
通过以下方式检查HumanCategory576
父级是否具有该功能:
is_callable('parent::sayHi'){
parent::sayHi();
}else{
echo "Hi from the category!";
}
请使用PHP文档中的is_callable。
<?php
class TestClass extends TestClassParent {
/** @brief Object initialisation callback
@returns void */
public function __construct() {
# do initialisation
# ...
# if we have a parent
if(is_callable('parent::__construct')) {
# then bubble up
parent::__construct();
}
}
}
?>