Sabitlerin her sınıf için ayrı ayrı tanımlanabilmesi mümkündür. Sabitler diğer değişkenlerden tanımlanmaları ve kullanılmaları sırasında başlarına getirilmeyen $ imi sayesinde ayrılırlar.
Değer, örneğin, bir değişken, bir sınıf özelliği, bir matematiksel işlemin sonucu veya bir işlev çağrısı değil, bir sabit ifade olmalıdır.
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.
PHP 5.3.0'dan itibaren, 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.
Ö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"; // PHP 5.3.0'dan itibaren
$class = new MyClass();
$class->showConstant();
echo $class::constant."\n"; // PHP 5.3.0'dan itibaren
?>
Örnek 2 - Duruk veri örneği
<?php
class foo {
// PHP 5.3.0'dan itibaren
const bar = <<<'EOT'
bar
EOT;
}
?>
Duruk veri bağlamında yorumlanan çok satırlı metinler değil (heredoc), yorumlanmayan çok satırlı metinler (nowdoc) kullanılabilir.
Bilginize:
Yorumlanmayan çok satırlı metin (nowdoc) desteği 5.3.0'da eklenmiştir.