Wenn ich Code lese, der im Laravel-Framework geschrieben wurde, sehe ich viele Verwendungen von ClassName::class
. Was bedeutet, ist die Bedeutung des Modifikators ::class
? Ist das eine Funktion von Laravel oder PHP? Ich habe gesucht, aber keine Dokumentation gefunden.
Was bedeutet ClassName::class in PHP? [duplicate]
Yinwei
Seit PHP 5.5 wird das Schlüsselwort class auch zur Auflösung von Klassennamen verwendet. Sie können eine Zeichenfolge erhalten, die den vollständig qualifizierten Namen der enthält Klassenname Klasse durch Verwendung
ClassName::class
. Dies ist besonders nützlich bei Namespace-Klassen.
Zum Beispiel
namespace MyProject;
class Alpha{ }
namespace MyOtherProject;
class Beta{ }
echo Alpha::class; // displays: MyProject\Alpha
echo Beta::class; // displays: MyOtherProject\Beta
Soliman Mahmud Soliman
Es gibt nur den Klassennamen mit Namensraum zurück! Seit PHP 5.5 wird das Schlüsselwort class auch zur Auflösung von Klassennamen verwendet. Mithilfe von ClassName::class können Sie eine Zeichenfolge abrufen, die den vollständig qualifizierten Namen der ClassName-Klasse enthält. Dies ist besonders nützlich bei Namespace-Klassen.
namespace NS {
class ClassName {
}
echo ClassName::class;
}
Das obige Beispiel wird ausgegeben:
NS\ClassName
-
Ok, aber was machst du dann mit diesem String, der ausgegeben wird???? Wie ruft man eine Methode darin auf?
– Nathan Leggatt
9. Juli um 0:32
Siehe dazu
::class
Since PHP 5.5, the class keyword is also used for class name resolution.
Dies Link führt Sie zur richtigen Seite in der PHP-Dokumentation, die die Auflösung von Klassennamen erklärt.
– alscxc
17. April 2018 um 0:53 Uhr