1.檢測類是否存在
函數:class_exist(); 1.可以使用isset(),直接檢測
、 2.if(class_exist('MyClass')){
$myclass = new MyClass();
}
2.獲取腳本進程中定義的所有類的數組
函數: get_declared_classes()
它會列出用戶自己定義的類以及PHP內置的類. 注意:它只返回在函數調用時已經聲明的類.
3:通過實例對象獲取類名
函數: get_class($classname)
通過將對象的實例作為參數傳遞進去,返回對象的類名.
4:檢測對象是否屬於某類
關鍵字: instanceof
(PHP4不支持instanceof關鍵字,而是提供了is_a()函數,但是這個函數在PHP5.0的時候就不使用了,從PHP5.3開始,又重新使用is_a())
instanceof 有兩個操作數,要檢測的對象在關鍵字左邊,類或者接口名在右邊.如果左側的對象屬於右側類型的實例,則返回true,反之返回false
if(對象實例 instanceof 類或接口){
}
5:獲取類中的所有方法
函數: get_class_methods(‘Person’)
參數為字符串的類名,需要注意的是,在獲取類中方法的時候,只能獲取類中公共方法,對private,protected類型的方法都無法獲取的到.
6:檢測方法是否存在於類中
函數: is_callable(),method_exists()
is_callable(): 接受字符串變量形式的方法名作為第一個參數,如果類方法存在且可以被調用,則返回true.如果要檢測類中的方法能不能被調用,可以給這個函數傳遞一個數 組,而不是類方法名作為參數.數組必須包含對象或者類名,以將其作為第一個元素,要檢測的方法名則作為第二個元素,如果該方法在類中存在,函數則會返回 true.
method_exists(): 相比而言,這個函數就簡單多了,這個方法需要傳遞兩個參數,第一個參數對對象名,第二個參數為方法名,如果給定的方法在類中存在則返回true.
7: 了解類中的屬性.
函數: get_class_vars(‘class’)
就想查詢類的方法一樣,我們也可以查看類有哪些屬性.(只能查看public的屬性,如果屬性為private或者protected將無法查看).該函數的參數為一個字符串的類名.
8:通過子類名獲取父類的名字
函數:get_parent_class()
這個函數需要一個對象或者類名作為參數,如果這個類或者對象存在父類的話,則把父類的名字返回.如果不存在則返回false
9:檢測一個類是否是另一個類的子類
函數: is_subclass_of()
這個函數需要接受兩個參數,第一個參數為子類的對象,第二個參數為父類的名字.如果第二個參數是第一個參數的父類的話,則返回true.