php怎样判断某个方法是否存在函数function_exists (), method_exists ()

  介绍

这篇文章主要介绍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怎样判断某个方法是否存在函数function_exists (), method_exists ()> </p> <p>那么如果把测试类中的一方法改成私有的或者是受保护的将会是什么样的结果呢? </p> <p>代码如图:</p> <p> <img src=

到这里结论不用讲也应该清楚了吧?

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()”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

php怎样判断某个方法是否存在函数function_exists (), method_exists ()