Sınıf Sabitleri

Sabit değerlerinin her sınıf için ayrı ayrı tanımlanabilmesi mümkündür. Sabit sınıflarının öntanımlı görünülüğü public'tir.

Bilginize:

Sınıf sabitlerini bir çocuk sınıf yeniden tanımlayabilir.

Ayrıca, sınıf arayüzlerinin de kendi sabitlerinin olması mümkündür. Örnekler için Nesne Arayüzleri belgesine bakınız.

Bir sınıfa bir değişken kullanarak atıfta bulunmak mümkündür. Değişkenin değeri, self, parent, static gibi bir anahtar sözcük olamaz.

Sınıf sabitlerinin her sınıf örneği için değil her sınıf için bir kere ayrıldığını unutmayın.

Örnek 1 - Bir sabitin tanımlanması ve kullanımı

<?php
class MyClass
{
    const 
CONSTANT 'sabit değer';

    function 
showConstant() {
        echo  
self::CONSTANT "\n";
    }
}

echo 
MyClass::constant "\n";

$classname "MyClass";
echo 
$classname::CONSTANT "\n";

$class = new MyClass();
$class->showConstant();

echo 
$class::CONSTANT."\n";
?>

Özel ::class sabiti ile derleme sırasında tamamen nitelenmiş sınıf ismi çözünürlüğü mümkün olup isim alanlı sınıflar için kulllanışlıdır:

Örnek 2 - İsim alanlı ::class örneği

<?php
namespace foo {
    class 
bar {
    }

    echo 
bar::class; // foo\bar
}
?>

Örnek 3 - Sınıf sabitinde ifade kullanımı

<?php
const BİR 1;

class 
foo {
    const 
İKİ BİR 2;
    const 
ÜÇ BİR self::İKİ;
    const 
CÜMLE 'ÜÇ için değer: '.self::THREE;
}
?>

Örnek 4 - Sınıf sabiti görünürlük değiştiricileri (PHP 7.1.0 ve sonrası)

<?php
class Foo {
    public const 
BAR 'bar';
    private const 
BAZ 'baz';
}
echo 
Foo::BARPHP_EOL;
echo 
Foo::BAZPHP_EOL;
?>

Yukarıdaki örneğin PHP 7.1 çıktısı:

bar

Fatal error: Uncaught Error: Cannot access private const Foo::BAZ in …

Bilginize:

Sınıf sabitlerinde görünürlük değiştiricileri desteği PHP 7.1.0'da eklendi.