以下的文章《PHP 中的封裝》提供了 PHP 封裝的詳細概述。
廣告
該類別中的熱門課程
PHP 開發人員 - 專業化 | 8 門課程系列 | 3次模擬測驗
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
- 早期,電腦程式是一長串指令。然後,這些命令被合併到稱為函數的命令列表中。
- 所有資料都儲存在一個位置。無論呼叫它的哪個位置,都會對其進行修改,這會導致許多問題,因為一個函數中修改的資料會影響其他功能。因此,為了克服這個問題,OOP 在 PHP 中使用了封裝。讓我們看看封裝到底是什麼。
- 封裝是物件導向程式語言(OOP)中的一個基本主題。它闡述了將資料(屬性)和方法(函數)綁定到單一單元(類別)中的概念。該術語也稱為資訊隱藏。
- 這是透過將類別的資料和方法設為私有來實現的。它解決的是實現層面的問題,而不是設計層面的問題。
- 封裝是專門用來保護的。它是向其他類別/方法隱藏物件的資料的過程,並且禁止類別的成員存取該資料。
- 如果您有一個其他人看不到的屬性,並將其與提供對資料成員的所有存取權的函數或方法捆綁在一起,您可以隱藏內容並控制對物件的存取。
- 使用者將不知道內部實現,只會了解該類別如何將資料儲存到變數中的功能的上視圖或頂視圖。一個物件的函數可以存取其他物件的函數。
- 在我們的日常生活中,封裝就像我們的衣櫃,可以存放襯衫、褲子等。在這種情況下,衣櫃將是主類,屬性將是衣服、盒子等。
PHP 中的封裝如何運作?
- 眾所周知,封裝是用來向使用者隱藏細節的。為了實現這一點,我們創建一個類別的對象,該物件調用方法和方法來使用定義的屬性執行其任務。
- 讓我們以空調和空調製造商為例。
假設您是空調製造商,現在您已經設計並整合了空調設計(類);透過使用您的設備,您正在製造用於銷售目的的空調(物體);當您出售空調時,用戶需要知道如何使用空調,而不是它是如何工作的,或者假設您有一台筆記型電腦並且有一個介面供您與其交互,您將使用空調的服務筆記型電腦而不是了解它實際上是如何工作的。
- 這表示您正在使用函數建立類別。透過建立類別的對象,您可以透過該物件使用類別的功能,並且不會幹擾原始類別。
- 封裝就是您希望物件或變數在實作的程式碼中可見的方式。
範例
class employee { public $name; private $id; protected $tax; public $age; }
如果您必須存取私有/受保護的屬性,您可以在類別中使用 getter 和 setter 方法。
如名字所示,
- getter 方法檢索其他類別中的屬性。
- setter 方法修改/更改屬性/資料的值。
- 根據我們實現的方法,我們可以決定必須授予哪些權限。我們可以授予唯讀、只寫、完全權限或根本沒有權限。為了實現這一點,我們使用存取說明符,例如 public、private 和 protected。
- 您可以在類別內部和類別外部的任何位置使用公共屬性,但不能透過直接呼叫來在類別外部使用私有和受保護的屬性。私有方法可以在同一個類別中訪問,受保護方法只能由子類別存取。在外部,該類別無法存取其他類別的私有或受保護方法。
- 使用 getter 和 setter 方法,您也可以存取類別外部的變數和方法。看一下員工類別;在類別中加入以下方法。
class employee{ public function employee_ID(){ return $this->id; }}
我們可以透過呼叫這樣的函數來存取它。
$obj = new employee(); echo $obj->employeeID()
PHP 封裝範例
以下是一個範例:
實作碼:
<!DOCTYPE html>
<html>
<head>
<title> Encapsulation in PHP </title>
</head>
<body>
<?php
class Employee
{
public $employee_name;
public $employee_id;
function __construct($emp_name, $emp_id)
{
$this->employee_name = $emp_name;
$this->employee_id = $emp_id;
}
public function Employee_details()
{
echo "Employee name is $this->employee_name and Employee id is $this->employee_id";
}
}
$obj = new Employee("Abhishek", "123456");
echo $obj->Employee_details();
?>
</body>
</html>
輸出:
PHP 封裝的好處
- 封裝幫助我們綁定資料(變數/屬性)和類別的成員函數。
- 可以使用 public、private 和 protected 等存取說明符將類別的欄位設定為唯讀或只寫。
- 它為您的程式碼提供了更高的安全性、靈活性和易於維護性。
- 使用封裝,你的方法和資料屬性不能被直接呼叫;因此使用者不會非法存取資料。
- 它允許我們修改已實現的程式碼,而不會破壞使用相同程式碼和功能的其他人的邏輯/程式碼。
- 它提供了物件資料的完整性。
- 類別的使用者不知道類別如何儲存資料。
- 封裝可防止資料發生意外變更。
- 封裝也提高了可重複使用性,並且很容易根據新的要求或需求進行更改。
結論
在本文中,我們學習了最重要的物件導向程式設計概念之一。封裝是最著名和最常用的技術之一,用於克服在多個位置呼叫的函數和方法。
封裝的重要性在於隱藏使用者複雜的程式碼,向使用者展示真正的功能。如果程式碼中沒有遵循正確的封裝,就會導致糟糕的設計。由此可見,現代程式語言大多支援封裝,如PHP、JAVA等。
以上是PHP 中的封裝的詳細內容。更多資訊請關注PHP中文網其他相關文章!