Anonyme PHP-Klasse
Dieses Tutorial vermittelt anonyme Klassen in PHP und zeigt anhand verschiedener Codebeispiele, wie diese Klassen erstellt und verwendet werden. Wir werden auch lernen, wie man eine anonyme Klasse in PHP verschachtelt.
Anonyme PHP-Klasse
Wie der Name schon sagt, ist die anonyme Klasse eine Klasse, die keinen Namen hat. PHP 7 hat die Funktionen der anonymen Klasse eingeführt, und diese Klasse ist nur für die einmalige Verwendung gedacht.
Die anonyme Klasse wird innerhalb eines Objekts dieser Klasse definiert. Der Anonyme kann alles tun, was eine normale Klasse tun wird, was das Erweitern, Implementieren und Verwenden von Merkmalen einschließt; Die Syntax für die anonyme Klasse lautet:
$Anonymous_Object=new class {
// Your code here
}
Versuchen wir ein einfaches Beispiel für die anonyme Klasse:
<?php
$Anonymous_Object=new class {
public function Print_Delftstack(){
echo "Hello, This is delftstack.com";
}
};
$Anonymous_Object->Print_Delftstack();
?>
Der obige Code funktioniert wie eine Standardklasse und ruft die Funktion Print_Delftstack()
aus einer anonymen Klasse auf. Siehe Ausgabe:
Hello, This is delftstack.com
Versuchen wir ein anderes Beispiel, in dem die anonyme Klasse eine Klasse erweitert
und eine Schnittstelle implementiert
:
<?php
class Demo_Class{
public function Print_Delftstack1(){
echo "This is delftstack from a parent class.<br>";
}
}
interface Demo_Interface{
public function Print_Delftstack2();
}
$Anonymous_Object=new class() extends Demo_Class implements Demo_Interface {
public function Print_Delftstack2(){
echo "This is delftstack from the parent interface; the method is implemented from Demo_Interface.";
}
};
$Anonymous_Object->Print_Delftstack1();
$Anonymous_Object->Print_Delftstack2();
?>
Der obige Code erweitert
eine Klasse und implementiert
eine Schnittstelle und verwendet dann ihre Methoden mit der anonymen Klasse. Siehe Ausgabe:
This is delftstack from a parent class.
This is delftstack from the parent interface; the method is implemented from Demo_Interface.
Wie wir sehen können, funktioniert die anonyme Klasse, aber wie kann eine Klasse im internen Gebrauch anonym arbeiten? Die Antwort darauf ist, dass PHP der anonymen Klasse einen eindeutigen Namen gibt; Versuchen wir, den Namen einer anonymen Klasse zu erhalten:
<?php
var_dump(get_class(new class() {
public function Print_Delftstack(){
echo "Hello, This is delftstack.com";
}
} ));
?>
Der obige Code gibt die Informationen über die angegebene anonyme Klasse aus, die der eindeutige Name für die anonyme Klasse ist; siehe Ausgabe:
string(46) "class@anonymousC:\Apache24\htdocs\new.php:2$5"
Verschachtelte anonyme Klasse in PHP
Das Anonymous kann im Körper der Methode einer anderen Klasse verschachtelt werden, aber es kann nicht auf die geschützten
und privaten
Mitglieder der äußeren Klasse zugreifen. Versuchen wir es an einem Beispiel:
<?php
class Demo_Class{
public function Delftstack1(){
return new class(){
public function Delftstack2(){
echo "This is delftstack two methods from the nested anonymous class.";
}
};
}
}
$Demo_Object=new Demo_Class();
$Demo_Object->Delftstack1()->Delftstack2();
?>
Der obige Code zeigt, wie die anonyme Klasse implementiert wird, die in eine Standardklasse verschachtelt ist. Siehe die Ausgabe:
This is delftstack two methods from the nested anonymous class.
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook