解析php函數(shù)method_exists()與is_callable()的區(qū)別
更新時(shí)間:2013年06月21日 10:02:46 作者:
本篇文章是對(duì)php中method_exists()與is_callable()的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
php函數(shù)method_exists() 與is_callable()的區(qū)別在哪?在php面相對(duì)象設(shè)計(jì)過程中,往往我們需要在調(diào)用某一個(gè)方法是否屬于某一個(gè)類的時(shí)候做出判斷,常用的方法有 method_exists()和is_callable(),相比之下,is_callable()函數(shù)要高級(jí)一些,它接受字符串變量形式的方法名作為 第一個(gè)參數(shù),如果類方法存在并且可以調(diào)用,則返回true。如果要檢測(cè)類中的方法是否能被調(diào)用,可以給函數(shù)傳遞一個(gè)數(shù)組而不是類的方法名作為參數(shù)。數(shù)組必須包含對(duì)象或類名,以將其作為它的第一個(gè)元素,要檢查的方法名則作為第二個(gè)元素。如果該方法在類中存在,函數(shù)返回true。
代碼示例:
if ( is_callable( array( $obj, $method ) ) )
{
/*要操作的代碼段*/
}
is_callable()可以加收另外一個(gè)參數(shù):一個(gè)布爾值,如果將該參數(shù)設(shè)置為true,函數(shù)僅僅檢查給定的方法或函數(shù)名稱的語法是否正確,而不檢查其是否真正存在。method_exists()函數(shù)的參數(shù)為一個(gè)對(duì)象(或類名)和一個(gè)方法名,如果給定方法在對(duì)象的類中存在,則返回true
代碼示例:
if ( method_exists( $obj, $method ) )
{
/*要操作的代碼段*/
}
php函數(shù)method_exists()與is_callable()的區(qū)別在于在php5中,一個(gè)方法存在并不意味著它就可以被調(diào)用。對(duì)于 private,protected和public類型的方法,method_exits()會(huì)返回true,但是is_callable()會(huì)檢查存在其是否可以訪問,如果是private,protected類型的,它會(huì)返回false。
代碼示例:
復(fù)制代碼 代碼如下:
if ( is_callable( array( $obj, $method ) ) )
{
/*要操作的代碼段*/
}
is_callable()可以加收另外一個(gè)參數(shù):一個(gè)布爾值,如果將該參數(shù)設(shè)置為true,函數(shù)僅僅檢查給定的方法或函數(shù)名稱的語法是否正確,而不檢查其是否真正存在。method_exists()函數(shù)的參數(shù)為一個(gè)對(duì)象(或類名)和一個(gè)方法名,如果給定方法在對(duì)象的類中存在,則返回true
代碼示例:
復(fù)制代碼 代碼如下:
if ( method_exists( $obj, $method ) )
{
/*要操作的代碼段*/
}
php函數(shù)method_exists()與is_callable()的區(qū)別在于在php5中,一個(gè)方法存在并不意味著它就可以被調(diào)用。對(duì)于 private,protected和public類型的方法,method_exits()會(huì)返回true,但是is_callable()會(huì)檢查存在其是否可以訪問,如果是private,protected類型的,它會(huì)返回false。
您可能感興趣的文章:
- php通過function_exists檢測(cè)函數(shù)是否存在的方法
- php使用function_exists判斷函數(shù)可用的方法
- php !function_exists("T7FC56270E7A70FA81A5935B72EACBE29"))代碼解密
- php判斷類是否存在函數(shù)class_exists用法分析
- php數(shù)組函數(shù)序列之in_array() - 查找數(shù)組中是否存在指定值
- php數(shù)組函數(shù)序列之in_array() 查找數(shù)組值是否存在
- php數(shù)組函數(shù)序列之a(chǎn)rray_key_exists() - 查找數(shù)組鍵名是否存在
- php file_exists 檢查文件或目錄是否存在的函數(shù)
- PHP 判斷常量,變量和函數(shù)是否存在
- php判斷某個(gè)方法是否存在函數(shù)function_exists (),method_exists()與is_callable()區(qū)別與用法解析
相關(guān)文章
Discuz不使用插件實(shí)現(xiàn)簡(jiǎn)單的打賞功能
今天小編就為大家分享一篇關(guān)于Discuz不使用插件實(shí)現(xiàn)簡(jiǎn)單的打賞功能,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03
php curl中g(shù)zip的壓縮性能測(cè)試實(shí)例分析
這篇文章主要介紹了php curl中g(shù)zip的壓縮性能測(cè)試,結(jié)合實(shí)例形式分析了php使用curl的gzip壓縮耗時(shí)與效率,需要的朋友可以參考下2016-11-11

