Zusammenfassung häufig verwendeter magischer Methoden in PHP

怪我咯
Freigeben: 2023-03-13 22:46:01
Original
2043 Leute haben es durchsucht

Bei der objektorientierten Programmierung stellt PHP eine Reihe von magischen Methoden bereit, die viel Komfort beim Programmieren bieten. Magische Methoden in PHP beginnen normalerweise mit (zwei Unterstrichen) und erfordern keine expliziten Aufrufe, sondern werden durch bestimmte Bedingungen ausgelöst. In diesem Artikel werden nur die häufig verwendeten magischen Methoden in PHP vorgestellt. Freunde, die sie benötigen, können hier nachschlagen.

Die häufig verwendeten magischen Methoden sind: Tostring () Call(). autoLoad() clone () GET() SET() isset() unset()

1.Tostring() Wird verwendet, um das Ausgabeobjekt zu definieren, das beim Referenzieren aufgerufen wird Häufig verwendete Druckinformationen zu einigen Objekten müssen einen Rückgabewert haben
z. B.: Es gibt eine Persistenzklasse
Persion per =new persion()
Echo per; tostring()-Methode hinzufügen

Der Code lautet wie folgt:

Function  Tostring()
{
$str=this->$name.this->age;
Return $str;
}
Nach dem Login kopieren

2.Clone() Objektkopie
Referenzzuweisung
$per1 =$per2; nur eine Adresse im Speicher
und $per1=clone $per2 Zu diesem Zeitpunkt gibt es zwei Speicheradressen


3 Die Methode call() existiert nicht, wenn die Klasseninstanz aufgerufen wird Wird ausgeführt, wenn eine Funktion vorhanden ist
Wenn Sie versuchen, eine Funktion aufzurufen, die in der Klasse nicht vorhanden ist, wird ein
Syntaxfehler angezeigt. Um eine benutzerfreundliche Eingabeaufforderung bereitzustellen können wir deklarieren Sie Call() in der Klassenmethode;

Function call($funName,$argu)
{
Echo "名为".$funName."参数为".printf($argh)."的函数不存在",
}
Nach dem Login kopieren

4.autoLoad Laden Sie automatisch die von verwendete Klassendatei. Diese Funktion dient zum Hinzufügen von
zu Wir alle kennen diese Situation. Wenn wir andere PHP-Dateien auf der Seite aufrufen müssen, müssen wir die
include-Methode verwenden referenziert werden, ist dies zu umständlich.

Function autoload($className)
{
Include $className.".php";
}
Nach dem Login kopieren
Auf diese Weise wird bei allen anderen Klassen, auf die verwiesen wird, automatisch auf den Namen der erforderlichen Klasse verwiesen Datei muss Klassenname sein.php

5.GET() Zugriff auf privat in den Klassenattributen
Wenn die Attribute in der Klasse auf private Attribute gesetzt sind, ist in Instanzen kein Zugriff auf sie möglich der Klasse, aber wie kann auf sie zugegriffen werden?
Wir können GET() verwenden

Beispiel:
Klasse hat

Class person
{
Private $name;
Private $age;
}
Nach dem Login kopieren
, um Person pro=neue Person() zu instanziieren

Per- > $name; //Der Wert kann auf diese Weise nicht abgerufen werden
Aber wenn wir die GET-Methode in der Klasse hinzufügen

Function GET($proName)
{
Return this->$proName;
}
Nach dem Login kopieren
wir können darauf zugreifen, indem wir erneut Per->$name aufrufen

Einige Leute werfen auf diese Weise möglicherweise Fragen auf. Auf diese Weise kann direkt auf private Variablen zugegriffen werden.
Wenn es öffentlich deklariert ist, können wir es beliebig lesen. Wenn es privat ist und wir die Get-Methode hinzufügen, wird der Inhalt der GET-Methode jedes Mal aufgerufen, wenn das private Attribut aufgerufen wird, sodass wir etwas hinzufügen können Logik für die Get-Methode.

6.SET() legt private Attribute in der Klasse fest
Das Prinzip ist das gleiche wie oben. Wir können der Klasse die Funktion SET() hinzufügen und Wann immer es durch Aufrufen der Klasseninstanz angegeben wird, wird die SET-Funktion ausgeführt.
Funktionsprototyp:

Function SET($proName,$value)
{
This->$proName=$value;
}
Nach dem Login kopieren
Da es sich um eine Methodenzuweisung handelt, können wir einiges tun logische Verarbeitung

7. isset() wird automatisch aufgerufen, wenn festgestellt wird, ob private Eigenschaften oder Methoden in einer Klasse vorhanden sind
Zunächst stellen wir die isset-Methode vor, mit der ermittelt wird, ob
Eigenschaften und Methoden existieren, aber wir können sie nicht übergeben. Klasseninstanz bestimmt, ob ein privates Attribut in der Klasse vorhanden istWenn wir isset(per->$name);// verwenden, ist der Rückgabewert falsch, aber das Attribut $name existiert, wie kann man es lösen?

Lösung:
1. Definieren Sie $name als private Eigenschaft 2. Fügen Sie
< in der Klassendefinition hinzu 🎜 >

Function isset($proName)
{
Return  isset(this->$proName);//再类内部是可以访问私有属性的
}
Nach dem Login kopieren
In diesem Fall rufen wir isset($name) erneut auf; der Rückgabewert ist wahr


8.unset() wird automatisch aufgerufen, wenn private Variablen gelöscht werden Klasse

In Kombination mit unset() können wir Attribute in einer Klasse löschen, wenn es sich um ein öffentliches Attribut handelt, aber wenn Es ist privat, wir verwenden nur diese Methode. Sie kann nicht implementiert werden.
Wie kann man sie implementieren? Wir können diese Funktion mit der Methode unset() implementieren Jetzt können wir unset($name); aufrufen, um die Personenklasse zu löschen

Das obige ist der detaillierte Inhalt vonZusammenfassung häufig verwendeter magischer Methoden in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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!