Was bedeutet ClassName::class in PHP? [duplicate]

Lesezeit: 1 Minute

Benutzer-Avatar
Yinwei

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.

  • 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


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

Benutzer-Avatar
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. 

1127490cookie-checkWas bedeutet ClassName::class in PHP? [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy