这篇文章主要介绍php怎样判断某个方法是否存在函数function_exists (), method_exists(),文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
<强> php函数function_exists (), method_exists()与is_callable()的区别在哪? 强>
先来讲下后两个:method_exists()与is_callable ():
在php面相对象设计过程中,往往我们需要在调用某一个方法是否属于某一个类的时候做出判断,常用的方法有method_exists()和is_callable ()
,,相比之下,is_callable()函数要高级一些,它接受字符串变量形式的方法名作为第一个参数,如果类方法存在并且可以调用,则返回正确的。如果要检测类中的方法是否能被调用,可以给函数传递一个数组而不是类的方法名作为参数。数组必须包含对象或类名,以将其作为它的第一个元素,要检查的方法名则作为第二个元素。如果该方法在类中存在,函数返回真的。
<强>
强>
接下来看一段代码:
& lt; ? php class test  { public 才能;function (), { ,,,return “test"; ,,} } abc {class public 才能;function (对象,funcName美元),{ ,,,如果(! is_callable(数组(对象,funcName美元))),{//检测方法:美元funcName是否存在美元于对象中,并且属于正常的调用结构 ,,,,,echo “错误:,the" !”,“。美元funcName干净,no exist “拷贝,干净自己的美元对象;& lt;/br>“; ,,,},{else ,,,,,echo “ok"; ,,,} ,,} } $ abc =, new abc (); 美国广播公司(abc)→美元(“test",“111“); 美国广播公司(abc)→美元(“test",“a");
结果显示如图:
到这里结论不用讲也应该清楚了吧?
php中的method_exists()和is_callable()的区别是什么呢?
php函数method_exists()与is_callable()的区别在于在php5中,一个方法存在并不意味着它就可以被调用。对于私人的,保护和公共类型的方法,method_exits()会返回真,但是is_callable()会检查存在其是否可以访问,如果是私有的、受保护的类型的,它会返回错误的。
然后还剩下一个,function_exists ()
这个比上两个的检测强度来讲是最弱的因为只有一个参数,函数名字符串,美元只会判断函数有没有被定义
总结一下:
<强> function_exists比较简单点就是判断函数有没有被定义而method_exists是判断类内的方法存不存在,is_callable 检测参数是否为合法的可调用结构强>
返回值都是bool
以上是“php怎样判断某个方法是否存在函数function_exists (), method_exists()”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!