PHP對類和物件的邏輯判斷和操作

2022-01-24 11:52:59 字數 1625 閱讀 1274

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.

PHP類和物件

php中用class來定義類,用new例項化物件,用extends繼承類,不過只能單繼承,屬性和方法有public private和protected做訪問控制,預設為public,在類裡定義常量不需要 用 範圍解析符可以呼叫父類的方法,訪問類的靜態變數 靜態方法和常量。範圍解析操作符 也可稱作 p...

PHP類和物件

php類和物件 類是物件導向程式設計的基本概念,通俗的理解類就是對現實中某乙個種類的東西的抽象,比如汽車可以抽象為乙個類,汽車擁有名字 輪胎 速度 重量等屬性,可以有換擋 前進 後退等操作方法。通常定義乙個汽車類的方法為 class car 物件通過new關鍵字進行例項化 car new car e...

PHP類和物件

類是物件導向程式設計的基本概念,通俗的理解類就是對現實中某乙個種類的東西的抽象,比如汽車可以抽象為乙個類,汽車擁有名字 輪胎 速度 重量等屬性,可以有換擋 前進 後退等操作方法。通常定義乙個汽車類的方法為 class car 123456類是一類東西的結構描述,而物件則是一類東西的乙個具體例項,例如...