在之前的文章中為大家帶來了《PHP中自訂錯誤處理函數與錯誤屏蔽你會了嗎?》,其中詳細的給大家帶來了PHP錯誤處理的相關知識,本篇我們一起來看看PHP中物件導向的相關知識,希望對大家有幫助!
物件導向其實就是將需要處理的問題抽象化為一個對象,然後透過物件的屬性和行為來解決物件的實際問題。那我們一起來看看應該怎樣在PHP中去定義類別與物件。
在PHP中,這個類別是抽象的概念。我們可以理解為世界上的任何事物都有自身的屬性與方法,屬性指的就是一個事物的性質,例如一個籃球,它的屬性指的就是它的大小、顏色、重量之類的;它的方法也就是他所具有的功能。
總而言之,類別是變數(類別的屬性)與作用於這些變數的函數(類別的方法)的集合,而屬性與方法是構成類別的基礎。
在PHP中我們可以透過class關鍵字加類名的方式定義一個類,它的語法格式如下:
[修饰类的关键字] class 类名{ 类的属性和方法; }
類名的命名規則與變數名與函數名的命名規則是非常相似的,都遵循的是PHP中的自訂命名規則。
類別名稱要以字母和或底線開頭,由字母、數字和底線組成。
當類別名稱有多個單字構成的時候,一般情況下習慣把每個單字的首字母大寫,
需要注意的是,類別名稱最好還是要有一定的意義,最好不要由隨便的幾個字母組成。
在上述語法格式中,裡面修飾類別的關鍵字是可以省略的,通常使用abstract和final作為關鍵字來修飾類別。
成員屬性
了解類別的語法格式後,我們就應該了解類別的成員屬性,什麼是成員屬性,我們把在類別中直接宣告的變數成為成員屬性,也叫做成員變數。在類別中能夠宣告多個變量,也就是在類別中有多個成員屬性,每個變數都儲存類別的不同的屬性資訊。它的語法格式如下:
访问权限修饰符 属性名称 = 属性值;
其中我們需要注意的是,在類別中宣告成員屬性時,一定要在前面使用一個關鍵字來修飾,這個和宣告變數時不一樣,在類別中宣告變數必須要有關鍵字來修飾。其中一些關鍵字是有意義的,如果不需要有別的意義來進行修飾的話要使用“var”關鍵字來修飾,它是沒什麼特定意義的,但是一旦有別的特定意義就要用別的關鍵字來修飾。
接下來要列舉一些常用的修飾關鍵字給大家:
public
:用它修飾後宣告的成員屬性,在類別的內部、子部和外部都可以使用,不會受到限制,表示它是一個公共的。
protectrd
:用它修飾後宣告的成員屬性,在類別的內部和子部可以使用,但是不能再類別的外部使用。
pirvate
:用它修飾後宣告的成員屬性,只能夠在類別的內部使用,不能再類別的子部和外部使用。
實例如下:
<?php class Family{ var $father; public $mother; private $brother; protectrd $sister; } ?>
定義一個名為Family的類,在類別中用不同的關鍵字修飾成員屬性。
成員方法
成員方法就是在類別中定義的函數,函數實作的是某一個獨立的功能,與函數不同的是,成員方法實作的是類別的一個行為,是類別的一部分。在類別中可以宣告多個成員方法,在宣告成員方法時需要注意的是,可以在function
關鍵字的前面加上存取權修飾符來控制存取權。
實例如下:
<?php class Family{ var $father; public $mother; private $brother; public static $sister; public function Write(){ } protected static function Read(){ } function Listen(){ } } ?>
在PHP中,還有類型聲明,
引入了類型聲明,我們可以為成員方法的形參和傳回值宣告類型,格式如下所示:
[权限修饰符] function 方法名 (类型 参数1, 类型 参数2, ..., 类型 参数n) : 返回值类型 { ... ... }
其中參數類型可以包含整數、字串型、浮點型和布林型,實例如下:
<?php class Family{ var $father; public $mother; private $brother; public static $sister; public function Write(string $a, int $b):bool{ } protected static function Read(string $str):int{ } function Listen(int $num):bool{ } } ?>
大家如果有興趣的話,可以點選《PHP影片教學》進行更多關於PHP知識的學習。
以上是帶你看懂PHP中的class定義類別與成員屬性方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!