Heim  >  Artikel  >  Backend-Entwicklung  >  Geschützt in PHP

Geschützt in PHP

PHPz
PHPzOriginal
2024-08-29 13:08:261027Durchsuche

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 Probetests

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Es gibt 5 Arten von Zugriffsmodifikatoren in PHP:

  • Öffentlich
  • Privat
  • Geschützt
  • Zusammenfassung
  • Finale

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.

Syntax

<?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.

Beispiele für geschützte Variablen und Methoden

Lassen Sie uns die Verwendung und Funktionsweise des geschützten Modifikators im Detail verstehen, indem wir unten ein einfaches Beispiel nehmen:

Beispiel #1

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:

Geschützt in PHP

Nach dem Kommentar zu Zeile 29, in der versucht wird, die geschützte Methode aufzurufen

Geschützt in PHP

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.

Beispiel #2

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:

Geschützt in PHP

Nach dem Kommentieren von Zeile 34

Geschützt in PHP

Nach dem Kommentieren der Zeilen 35 und 36

Geschützt in PHP

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.

Bedeutung von Protected in PHP

  • Der geschützte Modifikator verringert grundsätzlich die Sichtbarkeit der Variablen/Methode und ist daher sicherer als der öffentliche Zugriffsmodifikator, auf den überall zugegriffen werden kann.
  • Nur ​​Unterklassen können auf geschützte Methoden zugreifen und keine Klasse.
  • Der Nutzen der Klasse wird sehr deutlich, wenn wir sie als geschützt festlegen. Das ist wirklich hilfreich, wenn es eine Menge Daten gibt und wir diese eindeutig kennzeichnen müssen.
  • Geschützte Variablen und Mitglieder sind für die Klasse öffentlich, in der sie deklariert sind, und auch die untergeordnete Klasse erbt diese Eigenschaft von der übergeordneten Klasse.
  • Es bietet Sicherheit der zweiten Ebene, eine niedrigere als private, die am sichersten ist, und liegt neben öffentlichen Modifikatoren, die nicht so sicher sind.
  • Es hilft dem Entwickler, die gemeinsam nutzbaren und nicht teilbaren Mitglieder zu beschreiben und sie innerhalb der Wände der Klasse einzuschränken.

Fazit

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Privat in PHPNächster Artikel:Privat in PHP