首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 學習筆記:從語法入門到物件導向、設計模式、魔術方法實戰總結

     編輯:PHP 綜合知識

基礎語法重點

  • 作用域解析符 :::無實例時呼叫靜態方法/常數,或在子類別呼叫 parent::method()。
  • 序列化:serialize() 產生可儲存字串(含所有屬性值,不含方法),unserialize() 還原。同類別定義檔需包含在內。
  • new 預設回傳拷貝:PHP 5 起物件為參考傳遞,但 clone 才建立獨立副本。

PHP 5 物件模型核心

設計模式精要

  1. 工廠模式:執行期依條件實例化具體類別,封裝建立邏輯。
  2. 單例模式:全域唯一實例(資料庫連線、配置管理)。
    class DB {
        private static $instance;
        private function __construct() {}
        public static function getInstance() {
            if (!self::$instance) self::$instance = new self();
            return self::$instance;
        }
        public function __clone() { trigger_error('Clone forbidden', E_USER_ERROR); }
    }
  3. 觀察者、策略、裝飾者、適配器:常用於框架核心(Laravel Events、Middleware、Eloquent)。

魔術方法完整清單

特性說明
可見性public/protected/private
靜態成員static 屬性/方法屬於類別,非實例;self:: 存取;不可用 ->;子類別不可重新定義同名靜態成員。
常量const 定義類別常數,無 $ 符號,Class::CONST 存取。
抽象類別abstract class 不可實例化;含抽象方法必須宣告抽象類別;子類別必須實作所有抽象方法,可見性相同或更寬鬆。
介面interface 只定義方法簽名,全 public;implements 實作,可多介面;PHP 8+ 支援介面常數、預設實作。
重載__call/__callStatic、__get/__set/__isset/__unset 攔截不可見成員存取。
迭代器實作 Iterator 或 IteratorAggregate 讓物件可 foreach。
方法觸發時機
__construct實例化
__destruct銷毀(無參考或腳本結束)
__call/__callStatic呼叫不可見方法
__get/__set/__isset/__unset存取不可見屬性
__sleep/__wakeupserialize/unserialize
__toString物件當字串使用 echo $obj
__cloneclone $obj
__autoload / spl_autoload_register類別未定義時自動載入
__invoke物件當函數呼叫 $obj()
__set_statevar_export 匯出類別
__debugInfovar_dump 顯示自訂屬性

關鍵字與進階特性

  • final:禁止類別被繼承、方法被覆寫。
  • 型別提示:參數前加類別名強制型別(PHP 7+ 支援標量型別、回傳型別、nullable、union)。
  • instanceof:檢查物件是否為某類別(或介面)實例。
  • 腳本結尾 ?> 可省略,避免輸出空白導致 Header 失效。
  • require() 失敗致命錯誤;include() 僅警告。
  • require_once() 防重複包含。

異常處理

class AppException extends Exception {}
try {
    // risky code
} catch (AppException $e) {
    // log, notify
} catch (Throwable $t) { // PHP 7+ 捕捉 Error + Exception
    // fatal error handling
} finally {
    // cleanup
}

學習路徑建議

  1. 官方手冊「語言參考」章節逐節閱讀(型別、變數、運算子、控制結構、函數、類別)。
  2. 實作小專案:留言板 → 部落格 → 簡易電商 → API 服務。
  3. 閱讀優秀開源專案原始碼:Laravel、Symfony、Slim、League 套件。
  4. 掌握 Composer、PSR 標準、PHPUnit、PHPStan/Psalm 靜態分析。
  5. 持續關注 PHP 版本釋出(每年 11 月),新特性優先試用(JIT、Attributes、Readonly、DNF 型別等)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved