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

PHP 面向對象核心:類、對象、封裝、繼承、靜態成員完整指南

     編輯:PHP 相關知識

PHP 面向對象核心:類、對象、封裝、繼承、靜態成員完整指南

系統梳理 PHP OOP 基礎:從函數到類、對象實例化、三大特性(封裝/繼承/多態)、靜態屬性方法、類常量、構造析構、$this、self、parent、static 晚靜態綁定等核心概念。

1. 函數回顧

// 內置函數直接用;自定義函數支援預設參數、引用傳遞、可變參數
function dump($var = null) {
    echo '<pre>';
    var_dump($var);
}

2. 類與對象

class Person {
    // 屬性(成員變量)
    private $eye = '大眼睛';
    private $mouth = '小嘴巴';
    private $leg = '大長腿';

    // 構造方法:new 時自動調用
    public function __construct() {
        echo __CLASS__; // 輸出類名
    }

    // 方法
    public function run() {
        echo $this->leg; // $this 訪問對象屬性
    }

    public function study() {
        echo $this->leg, $this->eye, $this->mouth;
    }
}

// 實例化
$person = new Person(); // 輸出 Person
$person->run();         // 輸出 大長腿
$person->study();       // 輸出 大長腿大眼睛小嘴巴

3. 封裝:訪問修飾符

修飾符類內部子類外部
public✅✅✅
protected✅✅❌
private✅❌❌

私有成員子類不可直接訪問,需在子類重寫或提供公共 getter/setter。

4. 繼承

class A {
    public function help() { echo __METHOD__; }
    private function eat() { echo __METHOD__; }
}

class B extends A {
    public function doSomething() {
        $this->help(); // 繼承 public
        // $this->eat(); // 錯誤:private 不可訪問
    }
    public function eat() { echo __METHOD__; } // 重寫
}

$b = new B;
$b->doSomething();
// 輸出:A::help
//       B::eat

5. 靜態屬性與靜態方法

  • 屬於類,不屬於對象,無需 new 即可調用:ClassName::method()。
  • 節省內存、調用效率高、適合工具類、單例模式。
  • 內部用 self:: 訪問靜態成員,$this 不可用於靜態上下文。
class Url {
    public static function createUrl($arr = []) { echo __METHOD__; }
    public static function redirect($url = '') { echo __METHOD__; }
    public static function getCurrentUrl() { echo __METHOD__; }
}
Url::createUrl();
Url::redirect('/home');
Url::getCurrentUrl();

6. 類常量

class Url {
    const BASE = 'https://example.com';
    public static $version = '1.0';

    public static function info() {
        echo self::BASE;     // 類常量
        echo self::$version; // 靜態屬性
    }
}
Url::info();

7. 進階關鍵字

  • self:當前類(編譯時綁定)。
  • parent:父類。
  • static:晚靜態綁定(PHP 5.3+),指向實際調用的類。
  • final:禁止繼承/重寫。
  • abstract:抽象類/方法,強制子類實現。
  • interface:介面,定義契約。
  • trait:代碼復用單元,橫向組合。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved