::class ile sınıf adı
::class ile bir sınıfın tam adını dize olarak almayı öğrenirsin.
::class ile sınıfın tam adı
PHP'de ClassName::class yazarsan, o sınıfın tam adını (fully qualified name, FQCN) dize olarak alırsın. Bu, özellikle namespace kullanan projelerde yararlıdır.
Örnek: class User {} tanımlıysa, echo User::class; çıktısı User olur. Eğer namespace App\Models; altındaysa, çıktı App\Models\User olur.
Bu özellik dependency injection container'larında, loglama ve hata ayıklamada sıkça kullanılır: sınıf adını elle yazmak yerine ::class ile güvenli şekilde alırsın.
::class kullanım alanları
::class pratik bir araçtır. Örneğin, bir dependency injection container'a sınıf kaydederken elle dize yazmak yerine User::class kullanırsın; bu, IDE'nin sınıf adını yeniden adlandırırken otomatik güncellemesini sağlar.
Başka bir kullanım: hata ayıklama. echo get_class($obj) . "\n"; yerine veya yanında echo SomeClass::class . "\n"; yazarak sınıfın tam yolunu görebilirsin.
PHP 8.0'dan itibaren $obj::class sözdizimi de desteklenir; bu, get_class($obj) ile aynı sonucu verir.
Uygulama ::class ile sınıf adını yazdır
Bir User sınıfı tanımla (içi boş olabilir: class User {}). Sonra echo User::class . "\n"; ile sınıfın tam adını yazdır. (Namespace kullanmadığımız için çıktı User olur.)
Örnek çözümü göster
:class . "\n"; yaz.
Örnek çözüm:
<?php
// User sınıfını tanımla ve sınıf adını yazdır
class User {}
echo User::class . "
";
Kendini test et
-
User::class ifadesi ne döndürür?
- User sınıfının bir örneğini (instance)
- User sınıfının sabitlerini
- User sınıfının tam adını dize olarak
- User sınıfının metotlarını
Cevabı göster
User sınıfının tam adını dize olarak — Doğru. ::class sınıfın tam adını (FQCN) dize olarak döndürür.
-
::class ile sınıf adını al
class User { public string $name; } echo ____ . "\n";Cevabı göster
class User { public string $name; } echo User::class . "\n"; -
::class ile ilgili ifadeleri eşleştir
- User::class
- Sınıfın tam adı (FQCN)
- $obj::class
- Nesnenin sınıf adı (PHP 8.0+)
- get_class($obj)
- Nesnenin sınıf adı (klasik)
- App\Models\User
- Namespace altında FQCN