Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung mehrerer Syntax- und Verwendungsbeispiele für magische Methoden in PHP

Zusammenfassung mehrerer Syntax- und Verwendungsbeispiele für magische Methoden in PHP

伊谢尔伦
伊谢尔伦Original
2017-07-17 14:59:451665Durchsuche

Zu den häufig verwendeten magischen Methoden gehören: Tostring () Call() autoLoad() clone() GET() SET() isset() unset()

1.Tostring() wird zum Definieren des Ausgabeobjekts verwendet und beim Verweisen auf aufgerufen. Es wird häufig zum Drucken verwendet Informationen zu einigen Objekten und müssen einen Rückgabewert haben.
Es gibt eine Persionsklasse
Persion per =new persion()
Echo per; //Direkter Aufruf verursacht einen Fehler
Wir können Fügen Sie die tostring()-Methode in die Definition der Klasse ein

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

2.Clone() Objektkopie
Referenzzuweisung
$per1=$per2 Und das hat nur eine Adresse im Speicher
und $per1=clone $ per2 Es gibt derzeit zwei Speicheradressen

3 Die call()-Methode wird automatisch ausgeführt, wenn eine Funktion aufgerufen wird, die dies tut nicht in der Klasseninstanz vorhanden
Wenn Sie versuchen, eine Funktion aufzurufen, die in der Klasse nicht vorhanden ist, tritt ein Syntaxfehler auf, um eine benutzerfreundliche Eingabeaufforderung bereitzustellen
Wir können die Call()-Methode in der Klasse deklarieren

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

4.autoLoad Laden Sie automatisch die von verwendete Klassendatei. Diese Funktion dient zum Hinzufügen von
zur referenzierten Seite. Wenn wir andere PHP-Dateien auf der Seite aufrufen müssen, müssen wir die Methode include verwenden. Aber wenn es Dutzende von Seiten gibt, die dies benötigen Um referenziert zu werden, wäre es zu umständlich, die Autoload-Methode

Function autoload($className)
{
Include $className.".php";
}
auf der Seite zu verwenden. Auf diese Weise wird automatisch auf die Klassendatei verwiesen Die erforderliche Klassendatei muss Klassenname.php sein

5.GET() Zugriff auf private Attribute in der Klasse
Wenn die Attribute in der Klasse auf private Attribute festgelegt sind, in der Instanz der Klasse Es ist nicht zugänglich, aber wie kann ich darauf zugreifen?
Wir können GET() verwenden

Beispiel:
Klasse hat

class person
{
Private $name;
Private $age;
}
, 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;
}
wir können darauf zugreifen, indem wir Per->$name erneut aufrufen

Einige Leute werfen auf diese Weise möglicherweise Fragen auf. Auf diese Weise kann direkt auf private Variablen zugegriffen werden.
Wenn es als öffentlich deklariert ist, können wir es nach Belieben 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 es hinzufügen können etwas 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 SET()-Funktion hinzufügen und ihr einen Wert zuweisen Das private Attribut führt durch Aufrufen der Klasseninstanz die SET-Funktion aus.
Funktionsprototyp:

Function SET($proName,$value)
{
This->$proName=$value;
}
Da es sich um eine Methodenzuweisung handelt, können wir eine logische Verarbeitung durchführen

7.isset()
wird automatisch aufgerufen, wenn festgestellt wird, ob ein privates Attribut oder eine private Methode in einer Klasse vorhanden ist. Lassen Sie uns zunächst die isset-Methode vorstellen, um zu bestimmen, ob das
Attribut und Methode existieren, aber wir können die Klasseninstanz nicht übergeben. Bestimmen Sie, 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 diesem Fall rufen wir isset($name) erneut auf; der Rückgabewert ist wahr;
Function isset($proName)
{
Return  isset(this->$proName);//再类内部是可以访问私有属性的
}

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

In Kombination mit unset() können wir Attribute in einer Klasse löschen, wenn es sich um ein öffentliches Attribut handelt, aber wenn es privat ist , wir können es nicht nur durch diese Methode erreichen. Wir können die unset()-Methode verwenden, um diese Funktion zu erreichen Rufen Sie unset($name); auf, um die privaten Attribute in der Personenklasse
zu löschen

Das obige ist der detaillierte Inhalt vonZusammenfassung mehrerer Syntax- und Verwendungsbeispiele für magische Methoden 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