get_called_class() 获取调用该方法的类,如果是在子类中调用父类方法,则返回子类的类名。
或者用static关键字: static::class
如果有多个子类,要在父类中调用子类方法,下面代码可实现:
class parent{
abstract protected static function getFunc($action);
public static function call($action){
//调用子类静态方法,唯一的方式
$func = static::getFunc($action);
if(!$func){
exit();
}
try {
$reflectionMethod = new ReflectionMethod(get_called_class(), $func);
}catch (ReflectionException $e) {
exit();
}
return $reflectionMethod->invoke(null/*,$paras*/);
}
}
class son extends parent{
public static function getFunc($action){
return "hello";
}
}
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦