用于组织,测试和操作对象及类的工具和技术-3 了解类中的方法

了解类中的方法
可以使用get_class_methods()函数来得到一个类中所有方法的列表
该函数需要一个类名作为参数,返回包括类中所有方法名的数组。
print_r(get_class_methods('cdProduct'));
$product = getProduct();
$method = 'getTitle';
if(in_array($method,get_class_methods($product)))
{
echo $product->$method();
}


也可以使用函数is_callable()和method_exists()来检查
is_callable()更高级些,它接受字符串变量形式的方法名作为第一个参数,如果类方法存在并且可被调用,则返回true.
如果要检测类中的方法可否被调用,可以给函数传递一个数组而不是类方法名作为参数,数组必须包含对象或类名,以将其作为它的第一个元素,要检查的方法名作为第二个元素。
if(is_callable(array($product,$method)))
{
echo $product->$method();
}


method_exitst()函数的参数为一个对象(或者类名)和一个方法名,并且如果给定方法在对象的类中存在,则返回true
if(method_exists($product,$method))
{
echo $product->$method();
}


一个方法存在并不意味着它可以被调动,对于private protected public方法,method_exists()都返回true,而使用is_callable()检查存在的protected和private类方法时,会返回false.

你可能感兴趣的:(用于组织,测试和操作对象及类的工具和技术-3 了解类中的方法)