」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > PHP OOP 概念:類別、物件和繼承

PHP OOP 概念:類別、物件和繼承

發佈於2024-07-31
瀏覽:275

PHP OOP Concepts: Classes, Objects and Inheritance

PHP 中的類別

PHP 中的類別是定義物件的屬性和行為的藍圖或範本。它是一種封裝資料和操作該資料的函數的方法。類別定義了物件的結構和行為,包括其屬性(資料)和方法(函數)。

name = $name;
    $this->salary = $salary;
  }

  public function getDetails() {
    echo "Name: $this->name, Salary: $this->salary";
  }
}

PHP 中的對象

PHP中的物件是類別的實例,它代表現實世界的實體或概念。它有自己的一組屬性(資料)和方法(函數)來描述和定義其行為。物件是從類別創建的,可以獨立操作。

$manager = new Manager();
$developer = new Developer();

PHP 中的繼承

PHP 中的繼承是一種允許一個類別繼承另一個類別的屬性和行為的機制。繼承類別(子類別或子類別)繼承父類別的所有屬性和方法,也可以新增新的屬性和方法或覆寫從父類別繼承的屬性和方法。

//Inheritance 

class Manager extends Employee {
  public $department;

  public function __construct($name, $salary, $department) {
    parent::__construct($name, $salary);
    $this->department = $department;
  }

  public function getDetails() {
    parent::getDetails();
    echo ", Department: $this->department";
  }
}

class Developer extends Employee {
  public $specialty;

  public function __construct($name, $salary, $specialty) {
    parent::__construct($name, $salary);
    $this->specialty = $specialty;
  }

  public function getDetails() {
    parent::getDetails();
    echo ", Specialty: $this->specialty";
  }
}

// Create objects
$manager = new Manager("John Doe", 80000, "Marketing");
$developer = new Developer("Jane Smith", 70000, "Front-end");

// Access properties and methods
echo "Manager Details: ";
$manager->getDetails();
echo "\n";
echo "Developer Details: ";
$developer->getDetails();

每個類別都有姓名和薪水等屬性,以及 getDetails 等方法。程式碼從這些類別建立物件並使用它們的屬性和方法。在這裡我們可以看到類別如何繼承和添加新功能,以及物件如何用於儲存和顯示資料。我們可以透過在目前控制台中執行該專案來檢查此程式碼的輸出,輸出將是:

Manager Details: Name: John Doe, Salary: 80000, Department: Marketing
Developer Details: Name: Jane Smith, Salary: 70000, Specialty: Front-end

希望你已經明白了

版本聲明 本文轉載於:https://dev.to/ghulam_mujtaba_247/php-oop-concepts-classes-objects-and-inheritance-44j9?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 大批
    大批
    方法是可以在物件上呼叫的 fns 數組是對象,因此它們在 JS 中也有方法。 slice(begin):將陣列的一部分提取到新數組中,而不改變原始數組。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index ...
    程式設計 發佈於2024-12-23
  • OpenCV 的 `cvWaitKey()` 函數如何管理使用者互動和視窗事件?
    OpenCV 的 `cvWaitKey()` 函數如何管理使用者互動和視窗事件?
    探討OpenCV 的「cvWaitKey()」功能OpenCV 的「cvWaitKey()」函數在管理使用者互動方面發揮至關重要的作用OpenCV 窗口。讓我們深入研究其內部運作方式和典型用例:功能概述cvWaitKey(x) 提供兩個主要功能:按鍵偵測:它等待使用者在OpenCV 視窗上按指定的持...
    程式設計 發佈於2024-12-23
  • Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta:列偏移的刪除和恢復Bootstrap 4 在其Beta 1 版本中引入了重大更改柱子偏移了。然而,隨著 Beta 2 的後續發布,這些變化已經逆轉。 從 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    程式設計 發佈於2024-12-23
  • HTML 格式標籤
    HTML 格式標籤
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    程式設計 發佈於2024-12-23
  • PHP 中的 `echo`、`print`、`print_r` 和 `var_dump` 有什麼不同?
    PHP 中的 `echo`、`print`、`print_r` 和 `var_dump` 有什麼不同?
    PHP中Echo、Print、Print_r和Var_dump的差異許多PHP開發者經常使用echo和print_r來輸出資料。然而,令人驚訝的是,印刷品很少被使用。儘管它們有明顯的相似之處,但這些語言結構具有不同的特徵。 Echo 與 Printecho 和 print 都主要用於顯示字串。然而,...
    程式設計 發佈於2024-12-23
  • 如何使用 jQuery 高效創建 DOM 元素?
    如何使用 jQuery 高效創建 DOM 元素?
    使用jQuery 創建DOM 元素如果您希望增強JavaScript 程式碼,您會對利用jQuery 的功能來簡化DOM 操作感到好奇. jQuery 確實提供了建立DOM 元素的替代方法,正如您在$.create("div")中註意到的那樣。然而,這種方法不是 jQuery 核...
    程式設計 發佈於2024-12-23
  • 如何在 Eclipse 中輕鬆配置 Java 專案的本機庫路徑?
    如何在 Eclipse 中輕鬆配置 Java 專案的本機庫路徑?
    Eclipse 中的Java 庫發現困境:揭開秘密許多開發人員都在努力解決在Eclipse 中配置Java 庫路徑的艱鉅任務,當應用程式執行由於缺少.dll/.so/.jnilib 檔案而停止時,會遇到挫敗感。針對特定運行配置調整 VM 參數的傳統方法通常被證明是無效的。 相反,關鍵在於 Eclip...
    程式設計 發佈於2024-12-23
  • CSS 樣式只能設定半個字元嗎?
    CSS 樣式只能設定半個字元嗎?
    CSS 只能套用於半個字元嗎? 許多人尋求一種技術來僅設計半個字符的樣式,因為例如,通過使一半透明。然而,儘管搜尋了諸如「將 CSS 應用到字元的 50%」之類的方法,但到目前為止,還沒有找到運氣。話雖這麼說,是否存在 CSS 或 JavaScript 解決方案,還是求助於圖像是唯一的選擇? 新穎的...
    程式設計 發佈於2024-12-23
  • 如何在 Ubuntu 10.04 LTS 上安裝用於 C++ 開發的 OpenSSL 函式庫?
    如何在 Ubuntu 10.04 LTS 上安裝用於 C++ 開發的 OpenSSL 函式庫?
    在Ubuntu 10.04 LTS 上安裝OpenSSL 庫以進行C 開發正如您在詢問中提到的,使用OpenSSL 構建代碼需要適當的庫。在您的情況下,您遇到了指示 OpenSSL 庫檔案遺失的錯誤。本指南將透過解釋如何在 Ubuntu 10.04 LTS 上安裝所需的 OpenSSL C 程式庫來...
    程式設計 發佈於2024-12-23
  • 如何在 WordPress 中處理帶有 IN() 條件的準備語句?
    如何在 WordPress 中處理帶有 IN() 條件的準備語句?
    在 WordPress 中使用 IN() 條件處理準備語句WordPress 提供準備語句來防止 SQL 注入攻擊並提高查詢效能。但是,在字串中使用具有多個值的 IN() 條件可能會帶來挑戰。 問題陳述:考慮以下情況:$villes = '"paris","fes&qu...
    程式設計 發佈於2024-12-23
  • 儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    解決PHP 中的POST 請求故障在提供的程式碼片段中:action=''而非:action="<?php echo $_SERVER['PHP_SELF'];?>";?>"檢查$_POST陣列:表單提交後使用 var_dump 檢查 $_POST 陣列的內...
    程式設計 發佈於2024-12-23
  • 泛型如何提高 Go 中程式碼的可重複使用性和類型安全性?
    泛型如何提高 Go 中程式碼的可重複使用性和類型安全性?
    理解Go 中的泛型:開發人員指南泛型是程式設計中的一個基本概念,它允許開發人員創建可與多種資料類型。在像 Ruby 這種動態型別語言這樣的語言中,通用概念可能並不熟悉。本文將深入解釋 Go 這種靜態型別語言中泛型的意義。 了解靜態類型與動態類型在動態類型語言中,變數可以保存任何類型的數據,無需明確聲...
    程式設計 發佈於2024-12-23
  • Python 中的表達式和語句有什麼不同?
    Python 中的表達式和語句有什麼不同?
    Python 中的表達式與語句在 Python 中,表達式和語句構成了程式碼的基本構建塊。雖然兩者在程序中具有不同的用途,但區分它們對於有效的編碼實踐至關重要。 理解表達式表達式是表示值或執行操作的語法結構。計算。它們通常由標識符、文字和運算符組成,例如算術和布林運算符、函數呼叫、切片運算子等。表達...
    程式設計 發佈於2024-12-23
  • C++跨平台如何取得當前時間和日期?
    C++跨平台如何取得當前時間和日期?
    在C 跨平台中獲取當前時間和日期C 標準庫現在提供了一種方便且可移植的方式來檢索當前時間並透過std::chrono::system_clock 類別取得日期。在 C 11 中引入,此類提供了一個獨立於系統的接口,用於存取高分辨率計時資訊。 文法:auto now = std::chrono::sy...
    程式設計 發佈於2024-12-23
  • JavaScript 物件解構如何簡化函數參數?
    JavaScript 物件解構如何簡化函數參數?
    解開函數參數中JavaScript 物件解構的語法如果你想用這樣的物件參數定義函數:function moo({ a, b, c }) { // valid syntax! print(a); // prints 4 }...你沒有出現幻覺。這種語法稱為解構,可讓您將物件屬性直接解壓縮到函數...
    程式設計 發佈於2024-12-23

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3