Heim > Artikel > Backend-Entwicklung > Geschützt in PHP
Schlüsselwörter sind im Grunde eine Reihe spezieller Wörter, die in jeder Programmiersprache für einen bestimmten Zweck reserviert sind. Sie können entweder Befehle oder Parameter sein und können nicht wie Variablennamen allgemein verwendet werden. In PHP geschützt sind in allen Sprachen einschließlich PHP vordefiniert und werden auch als reservierte Namen bezeichnet.
WERBUNG Beliebter Kurs in dieser Kategorie PHP-ENTWICKLER - Spezialisierung | 8-Kurs-Reihe | 3 ProbetestsStarten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Es gibt 5 Arten von Zugriffsmodifikatoren in PHP:
Wir werden uns in diesem Artikel nur auf geschützte Zugriffsmodifikatoren konzentrieren. Neben Variablen werden auch geschützte Schlüsselwörter verwendet, um Methoden/Funktionen und Eigenschaften als geschützt zu deklarieren. Sofern nicht explizit angegeben, sind alle Variablen und Methoden standardmäßig öffentlich. Die geschützte Variable verringert die Sichtbarkeit der jeweiligen Variablen oder Methode, da ihr Zugriff auf die Klasse beschränkt ist, in der sie deklariert ist. Geschützte Zugriffsmodifikatoren können nicht auf Klassen angewendet werden.
Sie können jedoch von einer Unterklasse aufgerufen werden, die von ihrer übergeordneten Klasse geerbt wird. Daher kann man die erforderliche Methode oder eine Variable als geschützt deklarieren, indem man ihr ein „protected“-Schlüsselwort voranstellt.
<?php //declaration of protected variable protected $<variable_name> = value; //declaration of protected property protected $proc = 'protected property'; //declaration of protected function protected function function_name(){ //PHP code goes here } ?>
Hier können wir sehen, dass wir mit dem geschützten Schlüsselwort sowohl Variablen- als auch Funktionsnamen deklarieren.
Funktionsweise von protected-Modifikatoren in PHP: Wie den privaten Zugriffsmodifikator können wir protected auch verwenden, um die Verwendung und den Zugriff auf Klassenfunktionen und -variablen außerhalb der Klasse einzuschränken. Eine Ausnahme von vor privaten Variablen geschützten Variablen besteht jedoch darin, dass auf sie durch Vererbung von der übergeordneten Klasse in einer Unterklasse zugegriffen werden kann.
Lassen Sie uns die Verwendung und Funktionsweise des geschützten Modifikators im Detail verstehen, indem wir unten ein einfaches Beispiel nehmen:
Code:
<?php // Declaration of Main class class Math { protected $a = 30; protected $b = 10; // Declaration of division function function division() { echo $div=$this->a/$this->b; echo "\n"; } protected function multiply() { echo $mul=$this->a*$this->b; echo "\n"; } } // Declaration of child class addn inherited from above class class addn extends Math { // Declaration of addition function function addition() { echo $division=$this->a+$this->b; } } $obj= new addn; $obj->division(); $obj->addition(); $obj->multiply(); ?>
Ausgabe:
Nach dem Kommentar zu Zeile 29, in der versucht wird, die geschützte Methode aufzurufen
Im obigen Beispiel zeigen wir die verschiedenen mathematischen Operationen wie Addition, Division und Multiplikation. Zuerst deklarieren wir die Division()-Funktion ohne Zugriffsmodifikator. Daher ist sie standardmäßig öffentlich und der Divisionswert, den wir für die beiden Variablen a und b durchführen, wird in der Ausgabe angezeigt, wenn wir die Funktion aufrufen, indem wir ihr Objekt erstellen. Aber wenn wir versuchen, die geschützte Funktion multiply() aufzurufen, erhalten wir inline die Fehlermeldung 34, die besagt, dass die geschützte Methode nicht aufgerufen werden kann.
Dagegen können wir wie gezeigt eine geschützte Methode durch Vererbung aufrufen und erhalten. Hier wird die untergeordnete Klasse von der übergeordneten Klasse Math geerbt und daher können wir die geschützten Variablen a und b ohne Fehler aufrufen.
Code:
<?php class Animal { // Declaration of protected variable $animal protected $animal = array("Dog", "Cat", "Cow"); // Declaration of protected function for Animal description protected function getDescription($animal) { if($animal == "Dog") { echo "Dogs are the most loyal animals"; } else if($animal == "Cat") { echo "Cats are very smart"; } else if($animal == "Cow") { echo "Cows are worshipped in India"; } } } // Declaration of sub class of above Animal class class Dog extends Animal { protected $animal = "Dog"; // Declaration of public function to print dog's description public function getDogDescription() { // Here we call the protected getDescription() method of parent class Animal $this->getDescription($this->animal); } } // Creating an object of class Animal $animal = new Animal(); // Creating an object of subclass Dog $dog = new Dog(); /* Trying to access protected variables and methods */ echo $animal->animal; // Cannot be accessed $animal->getDescription("Dog"); // Cannot be accessed echo $dog->animal; // Cannot be accessed /* We can call getDogDescription method, in which we are calling a protected method of Animal class */ $dog->getDogDescription(); ?>
Ausgabe:
Nach dem Kommentieren von Zeile 34
Nach dem Kommentieren der Zeilen 35 und 36
In diesem Beispiel deklarieren wir zunächst die übergeordnete Hauptklasse „Animal“ und initialisieren eine geschützte Variable als „$animal“, bei der es sich um ein Array handelt, das die Namen von drei verschiedenen Tieren enthält. Als nächstes deklarieren wir auch eine geschützte Funktion, in der wir jedem Tier im Array eine eindeutige Beschreibung geben.
Da auf geschützte Variablen über eine Unterklasse zugegriffen werden kann, erstellen wir hier eine weitere Unterklasse Dog aus der übergeordneten Klasse Animal. Um außerdem zu zeigen, dass auf öffentliche Funktionen überall zugegriffen werden kann, deklarieren wir eine öffentliche Funktion, um die Beschreibung der Variablen „Hund“ auszugeben.
Als nächstes erstellen wir ein Objekt der beiden Klassen Animal und Dog und versuchen, auf deren geschützte Variablen zuzugreifen. Daher erhalten wir für die Zeilen 40, 41 und 42 einen schwerwiegenden Fehler, der besagt, dass auf geschützte Eigenschaften/Methoden/Variablen nicht zugegriffen werden kann. Daher können wir nicht auf Variablen außerhalb der Klasse Animal zugreifen, da alle geschützt sind.
Geschützte Variablen sind daher jene Zugriffsmodifikatoren, die zur Steuerung speziell definierter Variablen oder Methoden oder Eigenschaften in einer Klasse verwendet werden. Es muss explizit durch Präfix angegeben werden und kann daher nur innerhalb seines deklarierten Pakets und durch eine Unterklasse, die vom übergeordneten Paket erbt, aufgerufen werden.
Das obige ist der detaillierte Inhalt vonGeschützt in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!