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

PHP 類別與物件導向程式設計完整入門指南

     編輯:PHP 綜合知識

PHP 類別基礎與物件導向核心觀念

物件導向程式設計(OOP)透過將資料與行為封裝於「物件」中,實現程式碼重用與模組化。PHP 4 已具備基本 OOP 支援,PHP 5+ 大幅增強物件模型。本文系統整理 PHP 類別定義、實例化、繼承等核心語法與實務應用。

類別定義語法與命名慣例

<?php
// 類別命名:PascalCase(首字母大寫)
class Student {
    // 屬性聲明:var 關鍵字(PHP 4 風格)
    var $str_Name;   // 姓名
    var $str_Sex;    // 性別
    var $int_Id;     // 學號
    var $int_English; // 英文成績
    var $int_Maths;   // 數學成績
    
    // 方法定義:camelCase(駝峰式)
    function Input($Name, $Sex, $Id, $English, $Maths) {
        $this->str_Name   = $Name;
        $this->str_Sex    = $Sex;
        $this->int_Id     = $Id;
        $this->int_English = $English;
        $this->int_Maths   = $Maths;
    }
    
    function ShowInfo() {
        echo "姓名:{$this->str_Name}
"; echo "性別:{$this->str_Sex}
"; echo "學號:{$this->int_Id}
"; echo "英文成績:{$this->int_English}
"; echo "數學成績:{$this->int_Maths}
"; } } ?>

物件實例化與操作

使用 new 關鍵字建立物件實例:

<?php
// 建立兩個學生物件
$wing = new Student();
$wing->Input("Wing", "男", 33, 95, 87);

$paladin = new Student();
$paladin->Input("Paladin", "女", 38, 58, 59.5);

// 呼叫方法顯示資訊
$wing->ShowInfo();
$paladin->ShowInfo();
?>

輸出結果:

姓名:Wing
性別:男
學號:33
英文成績:95
數學成績:87
姓名:Paladin
性別:女
學號:38
英文成績:58
數學成績:59.5

核心觀念深度解析

$this 關鍵字

在類別方法中,$this 代表目前物件實例。存取屬性或呼叫方法必須使用 $this->property 或 $this->method(),否則會被視為區域變數。

建構子

PHP 4 使用與類別同名的方法作為建構子:

<?php
class Student {
    function Student($name, $sex, $id) {
        $this->str_Name = $name;
        $this->str_Sex  = $sex;
        $this->int_Id   = $id;
    }
}
// 實例化時自動呼叫建構子
$student = new Student("John", "男", 101);
?>

PHP 5+ 建議使用 __construct(),支援方法多載模擬。

繼承機制

<?php
class GraduateStudent extends Student {
    var $thesisTopic;
    
    function setThesis($topic) {
        $this->thesisTopic = $topic;
    }
    
    // 覆寫父類別方法
    function ShowInfo() {
        parent::ShowInfo();  // 呼叫父類別方法
        echo "論文主題:{$this->thesisTopic}
"; } } ?>

PHP 4 vs PHP 5 物件模型差異

特性PHP 4PHP 5+
物件傳遞值傳遞(複製)參考傳遞(handle)
建構子同名方法__construct()
解構子不支援__destruct()
存取控制僅 var(public)public/protected/private
靜態成員不支援支援 static
介面/抽象類別不支援完整支援
物件複製自動複製需用 clone

實務開發最佳實踐

  1. 命名規範:類別 PascalCase、方法/屬性 camelCase、常數 UPPER_SNAKE_CASE
  2. 單一職責:每個類別專注單一功能領域
  3. 封裝性:屬性設為 private,提供公有 getter/setter
  4. 型別宣告:PHP 7+ 使用嚴格型別宣告(declare(strict_types=1))
  5. 自動載入:遵循 PSR-4 標準,配合 Composer 管理依賴

常見陷阱與避坑指南

  • 未使用 $this:導致屬性賦值失效,變成區域變數
  • 建構子未呼叫 parent:子類別建構子覆寫時忘記初始化父類別
  • 靜態與實例混淆:self:: vs $this->、static:: 延遲靜態綁定
  • 序列化陷阱:__sleep()/__wakeup() 控制序列化行為

結語

掌握 PHP 類別與物件導向核心觀念,是開發可維護、可擴展應用程式的基石。建議從簡單類別設計練習起步,逐步引入設計模式(Factory、Strategy、Repository 等),並持續關注 PHP 新版本特性(如 PHP 8 的屬性提升建構子、readonly 屬性等)提升開發效率。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved