解析php函數(shù)method_exists()與is_callable()的區(qū)別
更新時間:2013年06月21日 10:02:46 作者:
本篇文章是對php中method_exists()與is_callable()的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
php函數(shù)method_exists() 與is_callable()的區(qū)別在哪?在php面相對象設(shè)計過程中,往往我們需要在調(diào)用某一個方法是否屬于某一個類的時候做出判斷,常用的方法有 method_exists()和is_callable(),相比之下,is_callable()函數(shù)要高級一些,它接受字符串變量形式的方法名作為 第一個參數(shù),如果類方法存在并且可以調(diào)用,則返回true。如果要檢測類中的方法是否能被調(diào)用,可以給函數(shù)傳遞一個數(shù)組而不是類的方法名作為參數(shù)。數(shù)組必須包含對象或類名,以將其作為它的第一個元素,要檢查的方法名則作為第二個元素。如果該方法在類中存在,函數(shù)返回true。
代碼示例:
if ( is_callable( array( $obj, $method ) ) )
{
/*要操作的代碼段*/
}
is_callable()可以加收另外一個參數(shù):一個布爾值,如果將該參數(shù)設(shè)置為true,函數(shù)僅僅檢查給定的方法或函數(shù)名稱的語法是否正確,而不檢查其是否真正存在。method_exists()函數(shù)的參數(shù)為一個對象(或類名)和一個方法名,如果給定方法在對象的類中存在,則返回true
代碼示例:
if ( method_exists( $obj, $method ) )
{
/*要操作的代碼段*/
}
php函數(shù)method_exists()與is_callable()的區(qū)別在于在php5中,一個方法存在并不意味著它就可以被調(diào)用。對于 private,protected和public類型的方法,method_exits()會返回true,但是is_callable()會檢查存在其是否可以訪問,如果是private,protected類型的,它會返回false。
代碼示例:
復(fù)制代碼 代碼如下:
if ( is_callable( array( $obj, $method ) ) )
{
/*要操作的代碼段*/
}
is_callable()可以加收另外一個參數(shù):一個布爾值,如果將該參數(shù)設(shè)置為true,函數(shù)僅僅檢查給定的方法或函數(shù)名稱的語法是否正確,而不檢查其是否真正存在。method_exists()函數(shù)的參數(shù)為一個對象(或類名)和一個方法名,如果給定方法在對象的類中存在,則返回true
代碼示例:
復(fù)制代碼 代碼如下:
if ( method_exists( $obj, $method ) )
{
/*要操作的代碼段*/
}
php函數(shù)method_exists()與is_callable()的區(qū)別在于在php5中,一個方法存在并不意味著它就可以被調(diào)用。對于 private,protected和public類型的方法,method_exits()會返回true,但是is_callable()會檢查存在其是否可以訪問,如果是private,protected類型的,它會返回false。
您可能感興趣的文章:
- php通過function_exists檢測函數(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判斷某個方法是否存在函數(shù)function_exists (),method_exists()與is_callable()區(qū)別與用法解析
相關(guān)文章
解析thinkphp import 文件內(nèi)容變量失效的問題
本篇文章是對thinkphp import文件內(nèi)容變量失效的問題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06Linux服務(wù)器下PHPMailer發(fā)送郵件失敗的問題解決
這篇文章主要給大家介紹了關(guān)于如何解決Linux服務(wù)器下PHPMailer發(fā)送郵件失敗的問題,文中通過示例代碼介紹的很詳細(xì),相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-03-03PHP面向?qū)ο蟪绦蛟O(shè)計類的定義與用法簡單示例
這篇文章主要介紹了PHP面向?qū)ο蟪绦蛟O(shè)計類的定義與用法,結(jié)合實例形式分析了php類的定義、實例化、__set()及__get()具體使用技巧,需要的朋友可以參考下2016-12-12