Heim >Backend-Entwicklung >PHP-Tutorial >Warum verwenden wir die ::class-Syntax im Laravel-Quellcode?
Seit PHP 5.5 kann das Schlüsselwort class auch zur Auflösung von Klassennamen verwendet werden. Mit ClassName::class können Sie eine Zeichenfolge erhalten, die den vollständig qualifizierten Namen der Klasse ClassName enthält. Dies ist besonders nützlich für Klassen, die Namespaces verwenden.
<code>$app->singleton( Illuminate\Contracts\Http\Kernel::class, App\Http\Kernel::class ); $app->singleton( Illuminate\Contracts\Console\Kernel::class, App\Console\Kernel::class ); $app->singleton( Illuminate\Contracts\Debug\ExceptionHandler::class, App\Exceptions\Handler::class ); </code>Da der vollständig qualifizierte Name der Klasse in diesen Bootstrap/app.php-Code geschrieben wurde, warum müssen wir dann die ::class-Syntax verwenden?
Seit PHP 5.5 kann das Schlüsselwort class auch zur Auflösung von Klassennamen verwendet werden. Mit ClassName::class können Sie eine Zeichenfolge erhalten, die den vollständig qualifizierten Namen der Klasse ClassName enthält. Dies ist besonders nützlich für Klassen, die Namespaces verwenden.
<code>$app->singleton( Illuminate\Contracts\Http\Kernel::class, App\Http\Kernel::class ); $app->singleton( Illuminate\Contracts\Console\Kernel::class, App\Console\Kernel::class ); $app->singleton( Illuminate\Contracts\Debug\ExceptionHandler::class, App\Exceptions\Handler::class ); </code>Da der vollständig qualifizierte Name der Klasse in diesen Bootstrap/app.php-Code geschrieben wurde, warum müssen wir dann die ::class-Syntax verwenden?
Jemand auf Zhihu hat die richtige Antwort gegeben: https://www.zhihu.com/questio...
Dies ist der Typ AppHttpKernel, der ein Objekttyp einer Klasse ist;
Dies ist die Klassennamenzeichenfolge der Klasse AppHttpKernel::class.
Für diese Frage müssen Sie zunächst das Containerkonzept von Laravel verstehen.