Maison >développement back-end >PHP7 >Qu'est-ce que l'encapsulation et comment l'implémenter dans PHP 7?
Encapsulation, l'un des quatre principes fondamentaux de la programmation orientée objet (POO), des données de soutien (propriétés ou attributs) et les méthodes (fonctions) qui fonctionnent sur ces données au sein d'une seule unité, souvent mentionnée comme une classe. Ce regroupement protège les données de l'accès direct de l'extérieur de la classe, appliquant un accès contrôlé via les méthodes définies. Dans PHP 7, l'encapsulation est implémentée principalement à l'aide de modificateurs d'accès: public
, protected
, et private
.
public
: Les membres (propriétés et méthodes) déclarés public
sont accessibles de n'importe où - à l'intérieur ou à l'extérieur de la classe. Cela offre un accès illimité. protected
: Les membres déclarés protected
ne sont accessibles que de la classe elle-même et de ses sous-classes (classes enfants). Cela fournit un niveau de protection, empêchant l'accès direct à partir de parties non liées de l'application. private
: Les membres déclarés private
sont accessibles uniquement à partir de la classe où ils sont définis. Cela offre le niveau d'encapsulation le plus fort, restreignant l'accès au fonctionnement interne de la classe. Pour implémenter l'encapsulation dans PHP 7, vous déclarez vos propriétés et méthodes de classe avec le modificateur d'accès approprié. Par exemple:
<code class="php"><?php class User { private $name; private $email; public function __construct($name, $email) { $this->name = $name; $this->email = $email; } public function getName() { return $this->name; } public function getEmail() { return $this->email; } public function setEmail($email) { // Add validation here if needed $this->email = $email; } } $user = new User("John Doe", "john.doe@example.com"); echo $user->getName(); // Accessing name through a public getter method echo $user->getEmail(); // Accessing email through a public getter method $user->setEmail("john.updated@example.com"); // Updating email through a public setter method //echo $user->name; // This would throw an error because $name is private. ?></code>
Dans cet exemple, $name
et $email
sont privés, ce qui signifie qu'ils ne peuvent être accessibles et modifiés que par le biais des méthodes publiques getName()
, getEmail()
et setEmail()
. Cet accès contrôlé est l'essence de l'encapsulation.
L'encapsulation offre plusieurs avantages significatifs:
Réduction de la complexité:
L'encapsulation simplifie la base de code en la décomposant en unis plus petit et gérable. Cela facilite la compréhension, le débogage et la modification du code.
Modifications localisées: encapsule les BankAccount
et
<code class="php"><?php class User { private $name; private $email; public function __construct($name, $email) { $this->name = $name; $this->email = $email; } public function getName() { return $this->name; } public function getEmail() { return $this->email; } public function setEmail($email) { // Add validation here if needed $this->email = $email; } } $user = new User("John Doe", "john.doe@example.com"); echo $user->getName(); // Accessing name through a public getter method echo $user->getEmail(); // Accessing email through a public getter method $user->setEmail("john.updated@example.com"); // Updating email through a public setter method //echo $user->name; // This would throw an error because $name is private. ?></code>et
gèrent la modification du BankAccount
, y compris la validation d'entrée pour garantir que seules les transactions valides sont traitées. Cela protège l'intégrité des données du compte et empêche la modification non autorisée. Cet exemple montre clairement l'application du monde réel de l'encapsulation dans la sécurisation et la gestion des données sensibles au sein d'une classe. accountNumber
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!