CodeBlanks Logo Icon CodeBlanks

::class ile sınıf adı

PHP kursu · Orta seviye · Ders 38/115

::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

  1. 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.

  2. ::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";
  3. ::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

Orta seviye bölümündeki tüm dersler