Les symboles de contrôle d'accès de PHP sont : 1. public, définissez la propriété ou la méthode pour qu'elle soit accessible de n'importe où ; 2. private, définissez la propriété ou la méthode pour qu'elle soit accessible uniquement par sa propre classe ou objet 3. protected, créez une propriété ; ou méthode accessible par sa classe ou ses descendants.
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3
Liste des modificateurs de contrôle d'accès
访问修饰符 | 含义 |
---|---|
Public | 将属性或方法设置为可从任何地方访问 |
Private | 将属性或方法设置为只能由其自己的类或对象访问 |
Protected | 将属性或方法设置为可由其类或其后代访问 |
public
Les propriétés et méthodes publiques sont accessibles de n'importe où.
<?PHP class Book { public $Name; public function say() { print "PHP!\n"; } } class PythonBook extends Book { public function say() { print "Python!\n"; } } $aBook = new PythonBook; $aBook->Name = "Python"; print $aBook->Name; ?>
Par défaut, toutes les méthodes de classe sont publiques.
Le code ci-dessus génère les résultats suivants.
private
Les propriétés privées ne sont accessibles qu'au sein de leur propre classe.
<?PHP class Book { private $Name; private $NameTag; public function setName($NewName) { // etc } } ?>
Les méthodes et propriétés parentales privées ne sont pas accessibles aux sous-classes. Si vous souhaitez faire cela, vous avez besoin du mot-clé protégé.
Protected
Les propriétés et méthodes protégées sont accessibles au sein de leur propre classe et sous-classes. Considérez le code suivant :
<?PHP class Book { public $Name; protected function getName() { return $this->Name; } } class Poodle extends Book { public function say() { print ""Book", says " . $this->getName(); } } $aBook = new Poodle; $aBook->Name = "PHP"; $aBook->say(); ?>
Le code ci-dessus génère les résultats suivants.
Exemple
Le code ci-dessous montre comment masquer des informations à l'aide de membres privés.
<?php class Widget { private $name; private $price; private $id; public function __construct($name, $price) { $this->name = $name; $this->price = floatval($price); $this->id = uniqid(); } //checks if two widgets are the same public function equals($widget) { return(($this->name == $widget->name) AND ($this->price == $widget->price)); } } $w1 = new Widget("Cog", 5.00); $w2 = new Widget("Cog", 5.00); $w3 = new Widget("Gear", 7.00); //TRUE if($w1->equals($w2)) { print("w1 and w2 are the same<br>\n"); } //FALSE if($w1->equals($w3)) { print("w1 and w3 are the same<br>\n"); } //FALSE, == includes id in comparison if($w1 == $w2) { print("w1 and w2 are the same<br>\n"); } ?>
Le code ci-dessus génère les résultats suivants.
Apprentissage recommandé : "Tutoriel vidéo PHP"
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!