由于v.4.0.5 php有
get_parent_class()方法,因此返回父类.所以你可以在没有重新选择的情况下处理它:
class A
{
function a() { /* ... */}
function b() { /* ... */}
}
class B extends A
{
function b() { /* ... */}
function c() { /* ... */}
}
function own_method($class_name, $method_name)
{
if (method_exists($class_name, $method_name))
{
$parent_class = get_parent_class($class_name);
if ($parent_class !== false) return !method_exists($parent_class, $method_name);
return true;
}
else return false;
}
var_dump(own_method('B', 'a')); // false
var_dump(own_method('B', 'b')); // false
var_dump(own_method('B', 'c')); // true