CodeBlanks Logo Icon CodeBlanks

Sabitlere erişim

PHP kursu · Orta seviye · Ders 37/115

:: operatörüyle sınıf sabitlerine dışarıdan ve içeriden erişmeyi öğrenirsin.

:: operatörüyle sabitlere erişim

Sınıf sabitlerine :: operatörüyle (scope resolution operator) erişilir. Dışarıdan ClassName::CONSTANT biçiminde yazılır.

Örnek: echo Circle::PI;. Burada Circle sınıf adı, :: erişim operatörü, PI sabit adıdır. $ işareti kullanılmaz.

Sınıf içinden erişmek için self::CONSTANT kullanılır. self, mevcut sınıfı temsil eder. Örnek: self::PI. Bu, static:: ile geç bağlama (late static binding) yapmaz; her zaman tanımlandığı sınıfı gösterir.

Sınıf içinden self:: ve parent::

Sınıf içinde bir sabiti kullanırken self::CONSTANT yazarsın. self, metodu tanımlayan sınıfı gösterir.

Örnek: bir Circle sınıfında alan hesaplayan metot sabiti kullanır: return self::PI * $r * $r;. Burada self::PI, aynı sınıftaki PI sabitidir.

Eğer alt sınıfta ebeveynin sabitini çağırman gerekirse parent::CONSTANT kullanırsın. parent:: bir üst sınıfı temsil eder.

Uygulama Circle sınıfında sabit ile alan hesabı

Bir Circle sınıfı tanımla. const float PI = 3.14; sabiti olsun. public function area(float $r): float metodu ekle ve return self::PI * $r * $r döndürsün. Sonra $circle = new Circle() oluştur ve echo $circle->area(2) . "\n" yazdır. (Beklenen çıktı: 12.56)

Örnek çözümü göster
float { return self::PI * $r * $r; } } sonra $circle = new Circle(); echo $circle->area(2) . "\n";
Örnek çözüm:
<?php
// Circle sınıfını tanımla ve area metodunu ekle
class Circle {
    const float PI = 3.14;
    public function area(float $r): float {
        return self::PI * $r * $r;
    }
}
$circle = new Circle();
echo $circle->area(2) . "
";

Kendini test et

  1. Circle sınıfındaki PI sabitine dışarıdan nasıl erişilir?

    • Circle::PI
    • $circle->PI
    • Circle->PI
    • $circle::PI
    Cevabı göster

    Circle::PI — Doğru. Circle::PI ile sınıf sabitine dışarıdan erişilir.

  2. Sınıf içinden sabite erişim

    class Circle {
        const float PI = 3.14;
        public function area(float $r): float {
            return ____ * $r * $r;
        }
    }
    Cevabı göster
    class Circle {
        const float PI = 3.14;
        public function area(float $r): float {
            return self::PI * $r * $r;
        }
    }
  3. Sabit erişim biçimlerini eşleştir

    Circle::PI
    Sınıf dışından erişim
    self::PI
    Sınıf içinden erişim
    parent::PI
    Ebeveynden erişim
    static::PI
    Geç bağlama (alt sınıf)

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