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判断的(当然私有方法除外)