class parent{
function run($methodname) {
echo method_exists(__CLASS__, $methodname);
}
}
class child extends parent {
function order(){
echo 'hello';
}
}
$test = new child();
$test->run('order'); //false
method_exists无法在子类中找到方法顺序。
如何让它发挥作用?
答案 0 :(得分:7)
__CLASS__
绑定到它所使用的类,而不是继承类。您可以使用$this
作为对象参考来解决此问题。
另见http://www.php.net/manual/en/language.oop5.late-static-bindings.php。
答案 1 :(得分:5)
尝试
echo method_exists($this, $methodname);
答案 2 :(得分:1)
我使用Reflection Class来获取课程详情。希望它有所帮助
function ownMethodExist($class, $method)
{
$className = get_class($class);
$reflection = new ReflectionClass($className);
if($reflection->getMethod($method)->class == $className) {
return true;
}
return false;
}