PHP對類和對象的邏輯判斷和操作


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.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM