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

PHP 面向物件程式設計(OOP)入門:類別、封裝、繼承與最佳實踐

     編輯:PHP 綜合知識

OOP 三大支柱在 PHP 中的體現

  • 封裝: var 宣告屬性,方法內用 $this->property 存取
  • 繼承: extends 關鍵字實現單繼承
  • 多型: 子類別覆寫父類別方法,介面(PHP5)定義契約

基礎類別定義與實例化

<?php
class Something {
    var $x;  // 屬性無型別限制,賦值時決定型別

    function setX($v) {   // 方法命名建議:駝峰式,首字母小寫
        $this->x = $v;
    }

    function getX() {
        return $this->x;
    }
}

// 實例化與使用
$obj = new Something();
$obj->setX(5);
$see = $obj->getX();  // 返回 5

// 不推薦直接存取屬性(破壞封裝)
// $obj->x = 6; 
?>

繼承實作

<?php
class Another extends Something {
    var $y;

    function setY($v) {
        $this->y = $v;
    }

    function getY() {
        return $this->y;
    }
}

$obj2 = new Another();
$obj2->setX(10);  // 繼承自父類別
$obj2->setY(20);
?>

PHP 4/5 關鍵差異與最佳實踐

特性PHP 4PHP 5建議
建構子同類別名方法__construct()統一使用 __construct()
解構子不支援__destruct()資源釋放用 __destruct()
存取控制無(全部 public)public/protected/private嚴格使用 private 保護內部狀態
物件傳遞值傳遞(複製)參考傳遞(預設)PHP5 免用 & 即為參考
介面/抽象類不支援完整支援定義契約用 interface、abstract

編碼規範建議

  • 類別名 PascalCase(UserManager),方法 camelCase(getUserById())
  • 屬性宣告統一加 var(PHP4 相容)或存取修飾詞(PHP5)
  • 嚴禁公開屬性,統一提供 getter/setter
  • 大型專案採用自動載入(spl_autoload_register)替代 require_once
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved