In der PHP-Entwicklung ist objektorientierte Programmierung (OOP) ein Mainstream-Programmierparadigma. Es organisiert Code durch die Struktur von "Klassen" und "Objekten", wodurch die Programmstruktur klarer ist, die Erweiterung und Wartung leichter ist. In der tatsächlichen Entwicklung ist es entscheidend, die Zugriffsrechte von Eigenschaften und Methoden in einer Klasse vernünftig zu kontrollieren, was die Verwendung von Zugriffsmodifikatoren erfordert.
Dieser Artikel erläutert die drei Zugriffsmodifikatoren in PHP: öffentlich (öffentlich), privat (privat) und geschützt (geschützt) und hilft Ihnen dabei, die Verwendung durch Beispiele zu meistern.
Zugriffsmodifikatoren werden verwendet, um die Zugangsniveau der Eigenschaften und Methoden in der Klasse zu steuern, wodurch Interferenz vom externen Code zu internen Implementierungen und der Kapselung des Programms vermieden wird. PHP unterstützt die folgenden drei Modifikatoren:
Öffentlich : öffentlicher Zugang, überall zugänglich.
Privat : Privatzugriff, nur für die interne Nutzung der Klasse.
geschützt : geschützter Zugriff, nur für interne und Unterklassen der Klasse.
Öffentlichkeit ist der häufigste Zugangsmodifikator, was bedeutet, dass die Eigenschaften oder Methoden einer Klasse von außen zugänglich sind und überall aufgerufen werden können.
class Person {
public $name;
public function sayHello() {
echo "Hello, my name is " . $this->name;
}
}
$person = new Person();
$person->name = "John";
$person->sayHello(); // Ausgabe:Hello, my name is John
In diesem Beispiel sind sowohl $ name als auch sayhello () öffentlich. Externe Zuordnungen und Anrufe können direkt den Werten und aufgerufen werden, was sehr intuitiv ist, aber es kann leicht dazu führen, dass Attribute nach Belieben geändert werden, was die Stabilität des Programms beeinflusst.
Die von privaten geänderten Eigenschaften und Methoden können nur innerhalb der Klasse zugegriffen werden, die sie definiert, und können nicht direkt außerhalb zugegriffen werden. Diese Methode verbessert die Kapselung und ist ein häufiges Mittel zum Schutz interner Implementierungen der Klasse.
class Person {
private $name;
public function setName($name) {
$this->name = $name;
}
public function sayHello() {
echo "Hello, my name is " . $this->name;
}
}
$person = new Person();
$person->setName("John");
$person->sayHello(); // Ausgabe:Hello, my name is John
Durch die Bereitstellung der öffentlichen SetName () -Methode kann das externe $ name $ indirekt festlegen, aber die Eigenschaft kann nicht direkt zugegriffen werden, wodurch die Integrität der Daten effektiv schützt.
Schutz ist zwischen privat und öffentlich , wodurch ererbte Klassen auf die Eigenschaft oder Methode zugreifen können, aber für extern nicht zugänglich ist.
class Person {
protected $name;
public function setName($name) {
$this->name = $name;
}
public function sayHello() {
echo "Hello, my name is " . $this->name;
}
}
class Student extends Person {
public function study() {
echo $this->name . " is studying.";
}
}
$student = new Student();
$student->setName("John");
$student->sayHello(); // Ausgabe:Hello, my name is John
$student->study(); // Ausgabe:John is studying.
Im obigen Code erbt der Schüler von Person , sodass Sie direkt auf die Eigenschaft geschützter $ name zugreifen können. Der geschützte Modifikator eignet sich für die Verwendung in den Klassenvererbungsstrukturen, bei der Aufrechterhaltung der Einkapselung und einer gewissen Flexibilität.
Durch die rationale Verwendung des Zugriffsmodifikators kann der Zugriffsbereich der Eigenschaften und Methoden des Objekts effektiv gesteuert werden, wodurch die Sicherheit und die Wartbarkeit des Programms verbessert werden. In der tatsächlichen Entwicklung:
Es wird empfohlen, das Attribut auf private oder geschützte festzustellen.
Manipulieren Sie Attribute durch öffentliche Methoden zur Verbesserung der Datensicherheit;
Wählen Sie, um nach der Erbschaftsbeziehung geschützt zu verwenden.
Vermeiden Sie unkontrollierbare Änderungen, die durch die Exposition von Eigentum verursacht werden.
Wenn Sie diese grundlegenden Prinzipien beherrschen, können Sie robustere und wartbarere objektorientierte Code schreiben.