在php中进行动态方法调用时,需要先确定该方法是否存在。
1.可用get_class_methods方法来获取某个类或对象的所有方法名。
2.定义一个类class Cls180605{ public function getprop1();}
print_r(get_class_methods('Cls180605'));将会打印出Cls180605类的所有方法,此处会打印出"getprop1"。
3.在动态方法调用的地方加上一个判断:
if(in_array($methodName,get_class_methods('Cls180605')))就可以判断动态调用的方法在类Cls180605中是否存在。
4.更保险的做法是用is_callable,该方法可以判断动态方法是否存在且可被调用,有些方法如Private方法尽管存在但不能被调用。
5.is_callable的使用形式:
$cls180605 = new Cls180605();
is_callable(array($cls180605 , 'getProp1'));
如果可调用返回true,否则返回false。