本篇文章主要講述的是PHP面向對象編程的基礎(一),具有一定的學習價值,感興趣的朋友可以了解一下。
面向過程的基礎是一句一句的代碼,而面向對象的基礎則是對象,對象則由類的實例而來。
類的定義:具有相同的屬性定義和行為表現的事物的集合。
類是變量(變的屬性)與作用于這些變量的函數(類的方法)的集合,屬性與方法是構成類的基礎。
1、類的封裝
類是變量與作用于變量的函數的集合,那么創建類就離不開變量和函數。
為類添加屬性就是向類中加入新的變量,可以使用public、protected和private關鍵字來定義。使用public修飾的變量可以在類外部被訪問,使用protected 和private修飾的變量則不可在類外部被訪問。
為類添加方法就是向類中增加函數,調用類的方法就是執行其中的函數。要實現為類添加方法,只需向類中加入新的函數即可。
如果在函數中要引用類本身的屬性或方法,這時必須使用偽變量$this加上引用的屬性或方法名,才能實現功能。
2、類的繼承
通常需要這樣一些類,這些類與其他現有的類擁有相同的變量和函數。
通過擴展或派生出來的類擁有基類或父類的所有變量和函數,并包含所有派生類中定義定義的部分。同時,擴充類總是依賴一個單獨的基類,也即不支 持多重繼承。
語法:class 子類 extends 父類
需要注意的是,使用public和protected修飾的屬性和方法可以被子類繼承,而使用private修飾的屬性和方法則不可以被子類繼承。
3、類的重載
一個子類中的屬性或方法有時會與它所繼承的父類中的屬性或方法重名,這時就出現了類的重載。
類的重載實際上是類屬性以及類的方法的重載。
當然,在子類中也可以訪問父類中的方法,不過要使用self和parent這兩個特殊的關鍵字,它們是用于在類的內部對成員或方法進行訪問的。
$this是指向對象實例的一個指針,在實例化的時候來確定指向;
self是指對類本身的一個引用,一般self指向類中的靜態變量。形式:self::靜態變量名
parent是對父類的引用,一般使用parent來調用父類的構造函數。
4、PHP中與類、對象相關的函數
class_exists()函數
返回類型:布爾值
功能:該函數檢查類是否已經定義
get_class_methods()函數
返回類型:數組(全部方法名)
功能:該函數返回由類的方法名組成的數組
get_class_vars()函數
返回類型:數組(類的所有公共屬性)
功能:該函數將返回由類的默認公有屬性組成的關聯數組,形式:varname=>value
get_class()函數
返回類型:字符串
功能:該函數將會返回對象實例所屬類的名字
get_declared_classes()函數
返回類型:數組
功能:該函數將會返回由當前腳本中已定義類的名字組成的數組。
get_object_vars()函數
返回類型:數組
功能:該函數返回由對象屬性組成的關聯數組。
get_parent_class()函數
返回類型:字符串
功能:該函數返回對象或類的父類名。
is_subclass_of()函數
返回類型:布爾值
功能:判斷對象與類的關系
method_exists()函數
返回類型:布爾值
功能:該函數檢查類的方法是否存在。
新聞熱點
疑難解答