PHP父类的构造函数里面有办法判断子类有某个方法吗?
阿神
阿神 2017-04-10 16:19:42
[PHP讨论组]

PHP父类的构造函数里面有办法判断子类有某个方法吗?

阿神
阿神

闭关修行中......

全部回复(4)
PHPz

hongweipeng的代码有错误, $this应该改成$static.
不懂请google 后期静态绑定

ringa_lee

修正:应该使用method_exists()
实例代码如下:

<?php

class F{
    public function __construct(){
        if(method_exists($this, 'son_fun1')){
            echo 'son_fun1存在';
        }else{
            echo 'son_fun1不存在';
        }
        if(method_exists($this,'son_fun2')){
            echo 'son_fun2存在';
        }else{
            echo 'son_fun2不存在';
        }
    }
}
class S extends F{
    public function son_fun1(){
    }
}
$a = new S();
大家讲道理
is_callable([$this, 'methodName'])

但这并不是一个很好的设计。理论上父类不应当需要了解这个信息

迷茫

通常情况下,这是不存在的。

但是,如果你指的子类是一个具体的,已知的子类,那么可以使用method_exists

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号