CodeBlanks Logo Icon CodeBlanks

Özet - Sınıf sabitleri

PHP kursu · Orta seviye · Ders 41/115

const, :: ve ::class'la sipariş durumu sabitli sınıf yazarsın.

Özet - Sınıf sabitleri

Bu grupta sınıf sabitlerini öğrendin:

  • const ile sınıf sabiti tanımlanır; $ işareti yoktur, değiştirilemez.
  • :: operatörüyle dışarıdan ClassName::CONSTANT, içeriden self::CONSTANT erişilir.
  • ::class sınıfın tam adını dize olarak verir.
  • Sabit değişmez; static property değişebilir.
  • Yapılandırma, durum kodu ve enum benzeri yapılar için idealdir.

Şimdi bunları birleştirip Order sınıfında sipariş durumu sabitleri yazacaksın.

Uygulama Order sınıfında sipariş durumu sabitleri

Bir Order sınıfı tanımla. const string PENDING = 'pending'; ve const string SHIPPED = 'shipped'; sabitleri olsun. private string $status property'si ve public function __construct(string $status = self::PENDING) yapıcı metodu olsun; yapıcı $this->status = $status atasın. public function label(): string metodu ekle; metod if ($this->status === self::SHIPPED) { return 'Gönderildi'; } koşulu ve return 'Beklemede' döndürsün. Sonra $order = new Order(Order::SHIPPED) oluştur ve echo $order->label() . "\n" yazdır. (Beklenen çıktı: Gönderildi)

Örnek çözümü göster
:PENDING) { $this->status = $status; } public function label(): string { if ($this->status === self::SHIPPED) { return 'Gönderildi'; } return 'Beklemede'; } } sonra $order = new Order(Order::SHIPPED); echo $order->label() . "\n";
Örnek çözüm:
<?php
// Order sınıfını tanımla
class Order {
    const string PENDING = 'pending';
    const string SHIPPED = 'shipped';
    private string $status;
    public function __construct(string $status = self::PENDING) {
        $this->status = $status;
    }
    public function label(): string {
        if ($this->status === self::SHIPPED) {
            return 'Gönderildi';
        }
        return 'Beklemede';
    }
}
$order = new Order(Order::SHIPPED);
echo $order->label() . "
";

Sınıf sabitleri ipuçları

Sonuç olarak: const değişmeyen değerler içindir, static değişebilen değerler için. Sabitlere :: ile erişirsin; sınıf içinde self::, dışarıda ClassName::.

Yapılandırma, durum kodu ve enum benzeri yapılar için sabitleri kullan. Bu, kodunu daha okunaklı ve güvenli yapar; sihirli sayı (magic number) ve sihirli dize (magic string) sorununu önler.

Bir sonraki grupta interface'lerle sınıflar arası sözleşme (contract) tanımlamayı öğreneceksin.

Kendini test et

  1. Sınıf sabiti kavramlarını eşleştir

    const
    Sınıf sabiti tanımlar
    ::
    Sabitlere erişim operatörü
    ::class
    Sınıfın tam adını verir
    self::
    Sınıf içi erişim
  2. Bir e-ticaret uygulamasında sipariş durumu için en uygun seçim nedir?

    • Sınıf sabitleri (const) ile tanımlı durumlar
    • Her sipariş için ayrı bir değişken
    • Veritabanında her seferinde yeni dize yazmak
    • public property olarak saklamak
    Cevabı göster

    Sınıf sabitleri (const) ile tanımlı durumlar — Doğru. Sipariş durumları değişmez değerlerdir; sınıf sabiti idealdir.

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