php判断类的方法是否存在

method_exists方法很多人都用过,但是今天用到method_exists方法时候发现有一个类,有很多子类,而我又只想改一个子类的方法,并不想影响到这个父类,所以就有了以下的测试

测试

<?php
class testFunction{
    public function __construct(){
        echo 'test start';
        if(method_exists($this,'setSeoTitle')){
            $this->setSeoTitle();
        }
        
        echo 'test end';
    }
   
  
    
}
class testFunctionChild extends testFunction{
      function setSeoTitle(){
       echo 'setSeoTitle is start'.PHP_EOL;
    }
}

new testFunctionChild();

结果

setSeoTitle is start
test end

总结

测试发现,只要是继承了这个父类的所有子类的方法都是可以使用method_exists判断的(当然私有方法除外)

原文地址:https://www.cnblogs.com/xuduan/p/14307200.html