Zugriffsmodifikatoren in PHP

PHPz
Freigeben: 2024-08-29 13:06:31
Original
964 Leute haben es durchsucht

Der Zugriffsmodifikator ist eine Möglichkeit, den Zugriffsbereich und die Zugriffsrechte auf die Variable anderer PHP-Bezeichner festzulegen. PHP unterstützt verschiedene Schlüsselwörter, um jede Variable zum Zugriff auf jede Variable und die Bezeichner zu machen. Wir können diese Schlüsselwörter der Klasse, Funktion oder Bezeichnern zuweisen. Diese Schlüsselwörter – öffentlich, privat, geschützt, abstrakt, endgültig usw.

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Wann werden Zugriffsmodifikatoren in PHP verwendet?

PHP hat im Gegensatz zu Java einige Einschränkungen hinsichtlich seines Zugriffsmodifikators. Wir können nicht alle PHP-Zugriffsmodifikatoren auf Klassenebene, Funktionsebene und Bezeichnerebene verwenden. Wir können diese Zugriffsmodifikatoren gemäß unserem Geschäftsbedarf verwenden, um im gesamten Programm oder in der Anwendung Berechtigungen zu erteilen oder zu widerrufen.

Hier sind die Listenmodifikatoren und ob sie anwendbar sind oder nicht:

Access Modifier Class Level Function Level Variable Level
public NA YES YES
private NA YES YES
protected NA YES YES
abstract YES YES NA
final YES YES NA
Static NA YES YES

In der obigen Geschichte bezeichnet NA das Nichtzutreffende. Das bedeutet, dass wir das Öffentliche, Private und Geschützte nicht auf Klassenebene verwenden können. Wir können die Zusammenfassung und das Finale nur auf Klassenebene verwenden.

Verschiedene Zugriffsmodifikatoren in PHP

Hier sind die folgenden Zugriffsmodifikatoren in PHP, die unten erwähnt werden

1. Modifikator für den öffentlichen Zugriff

Öffentlich ist der Standardmodifikator wie JAVA in PHP. Das heißt, wenn wir standardmäßig keinen Modifikator mit den Funktionen der Bezeichner verwenden, wird er als Modifikator für den öffentlichen Zugriff betrachtet. Dies ist eines der am weitesten verbreiteten. Wenn wir zur Wiederverwendbarkeit des Codes der Funktion kommen, verwenden wir normalerweise den Modifikator für den öffentlichen Zugriff. Da die Öffentlichkeit von überall aus verwendet werden kann, sicherlich innerhalb der Klasse, außerhalb der Klasse, in der erweiterten Klasse, und wenn diese öffentliche Wiederverwendbarkeit an keine Klasse gebunden ist, können wir sie überall dort verwenden, wo wir die Datei einschließen. Wie in der obigen Tabelle erwähnt, können wir diesen öffentlichen Modifikator nicht zusammen mit private und protected mit der Klasse verwenden.

Jetzt ist es an der Zeit, sich das Beispiel des öffentlichen Zugriffsmodifikators anzusehen:

<?php
class MyAccess {
var $var = "This is first var";
// print var variable value
function returnVar() {
echo $this->var;
}
}
$obj1 = new MyAccess();$obj1->returnVar();
?>
Nach dem Login kopieren

Im obigen Code wurde die Funktion returnVar() ohne Zugriffsmodifikator definiert, daher funktioniert sie so öffentlich, da dies der Standardmodifikator in der PHP-Sprache ist.

Zugriffsmodifikatoren in PHP

öffentlich, privat und geschützt sind auf Klassenebene nicht anwendbar; Sehen wir es uns anhand eines Beispiels an.

<?php
class public MyAccess {
var $var = "This is first var";
function returnVar() {
echo $this->var;
}
}
$obj1 = new MyAccess();
$obj1->returnVar();
?>
Nach dem Login kopieren

Der obige Code gibt einen Fehler wie unten erwähnt aus:

( ! ) Parse-Fehler: Syntaxfehler, unerwartetes „public“ (T_PUBLIC), erwarteter Bezeichner (T_STRING) in E:wampwwwtwitindex.php in Zeile 2

Dies gilt auch für privat und geschützt.

<?php
class private  MyAccess {
var $var = "This is first var";
}
?>
<?php
class protected  MyAccess {
var $var = "This is first var";
}
?>
Nach dem Login kopieren

2. Privater Zugriffsmodifikator

Dieser Modifikator gibt das private Schlüsselwort an, das damit verarbeitet werden soll.  Wir können den privaten Modifikator nicht mit der Klasse verwenden. Wir können dies nur mit den Klassenvariablen und Klassenmethoden verwenden (wie wir in der obigen Tabelle erwähnt haben). Wenn wir das Private deklarieren und verwenden, kann über das Objekt der Klasse nicht darauf zugegriffen werden. Es kann nur innerhalb der Klasse verwendet werden.

Zum Beispiel

<?php
class MyAccess {
var $var = "This is first var";
private $fist_name;
// simple class method
function returnVar() {
echo $this->fist_name;
}
function set_fist_name($set_this){
$this->fist_name = $set_this;
}
}
$obj1 = new MyAccess();
echo $obj1->fist_name; // will give the error
$obj1->set_fist_name("Jai Shre");
$obj1->returnVar();
?>
Nach dem Login kopieren

echo $obj1->fist_name; // gibt den Fehler aus

Diese Codezeile können wir verwenden, da dadurch der Fehler auftritt. Dies ist etwas, auf das wir mit dem Objekt dieser Klasse nicht auf die private Variable zugreifen können. Aber wir können dies nutzen, indem wir seine Einstellung und die Getter-Methode verwenden, wie wir sie im obigen Code verwenden. $obj1->set_fist_name(“Jai Shre”); Die Codezeile legt den Wert in der Variablen fest und verwendet $obj1->returnVar(); Wir können den Wert der eingestellten Variablen erhalten.

3. Geschützter Zugriffsmodifikator

Genau wie öffentlich und privat unterstützt geschützt selbst nicht auf Klassenebene. Wie ein privater Modifikator schränkt protected auch den Zugriff auf Klassenvariablen oder die Funktion von außerhalb der Klasse ein. Es kann innerhalb derselben Klasse und aus der Unterklasse (untergeordnete Klasse) verwendet werden.

Zum Beispiel 

<?php
class MyAccess {
var $var = "This is first var";
protected $fist_name;
// simple class method
function returnVar() {
echo $this->fist_name;
}
function set_fist_name($set_this){
$this->fist_name = $set_this;
}
}
class child extends MyAccess {
function setVal($set_this){
$this->fist_name = $set_this;
}
function getVal(){
echo $this->fist_name;
}
}
$obj1 = new child();
//echo $obj1->fist_name; // will give the error
$obj1->setVal("Jai Shre");
$obj1->getVal();
?>
Nach dem Login kopieren

echo $obj1->fist_name; Die Codezeile gibt den folgenden Fehler aus

Ausgabe:

Schwerwiegender Fehler: Auf die geschützte Eigenschaft MyAccess::$fist_name in E:wampwwwtwitindex.php kann online nicht zugegriffen werden 20

4. Abstrakter Zugriffsmodifikator

Es kann für die Klasse und die Funktion verwendet werden, nicht für die Klassenvariable. Wenn eine Klasse mindestens eine abstrakte Funktion hat, muss sie als abstrakt deklariert werden. Wir können die abstrakte Klasse nicht instanziieren. Eine abstrakte Klasse wird hauptsächlich als unvollständige Klasse betrachtet.

5. Endgültiger Zugriffsmodifikator

Wenn eine Klasse als endgültig deklariert wird, können wir diese Klasse nicht verlängern. PHP verhindert, dass die letzte Klasse vererbt wird.

6. Statischer Zugriffsmodifikator

Das Schlüsselwort static kann verwendet werden, um jede Funktion statisch zu machen. Es aktiviert die Fähigkeit dieser Funktion, sodass man sie beim Erstellen eines Objekts der Klasse verwenden kann, in der sie deklariert wurde. Beispiel für eine statische Methode –

public static function static Function()
{
// declaration goes here..
}
Nach dem Login kopieren

Fazit

Wir sollten immer den Zugriffsmodifikator gemäß den Geschäftsanforderungen verwenden. Mit private und protected können wir die direkte Verwendung privater Variablen und privater Methoden außerhalb der deklarierten Klasse einschränken.

Das obige ist der detaillierte Inhalt vonZugriffsmodifikatoren in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:php
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!