這次的單元我來稍微介紹一下 PHP 裡面常看到的一些屬性與方法。
訪問修飾符用於控制類屬性和方法的可見性。在 PHP 中,除了預設的 default
,還有三種修飾符:public
、private
和 protected
。
方法修飾符總共有三種,分別為 static
、final
、abstract
。
類名::屬性
或 類名::方法名()
來調用。readonly
是從 PHP 8.1 開始新增的屬性修飾符,用於使屬性無法被修改,但仍然可以被訪問。這個修飾符的主要用途是確保屬性在創建後不會被更改,讓使用者可以放心引用,而不必擔心該值在其他地方被調整。
PHP 提供了多種魔術方法,這些方法通常以 __
開頭。以下是幾種常用的魔術方法介紹:
當創建目標物件時,可以使用構造函數來定義一些初始化的內容,確保在物件構建時同時完成初始化。
這三個方法分別用於獲取、設置和確認屬性是否已被設置的功能。
此方法主要用於檢查被呼叫的方法是否存在於該類別中。
這個魔術方法的使用頻率較高,但對初學者來說可能較難理解。簡單來說,__invoke()
可以讓物件被視作函數來使用。一般情況下,當我們實例化一個類別為物件時,只能呼叫該類別本身所包含的函數,而 __invoke()
則允許我們直接將這個類別作為函數使用。你可以參考這篇文章中的舉例:PHP 魔術方法|三分鐘看懂 __invoke 用法。在實作中,尤其是在 MVC 架構中,Controller 通常負責一件特定的事情,並使用 __invoke()
來實現 RESTful API 架構。
對於初學者來說,魔術方法可能是最難掌握的概念之一。由於魔術方法不具備一般函數的名稱,因此在未經過專門學習的情況下,直接在程式碼中看到這些方法時,想要使用 IDE 的 declaration 功能查詢內容往往會失敗(這取決於 IDE 的功能強弱)。因此,每次遇到魔術方法時,都可以視作一次學習經驗。