В контекста на даден клас могат да бъдат дефинирани константи, които остават едни и същи и не търпят промяна. Константите се различават от нормалните променливи по това, че не е нужно да използвате символа $, за да ги дефинирате или използвате.
Стойността трябва да бъде константен израз, т.е. не може да бъде променлива, член на клас, резултат от математическа операция или обръщане към функция.
Интерфейсите също могат да имат константи. За да видите някои примери прегледайте документацията за интерфейсите.
От PHP 5.3.0 е възможно да се обърнете към клас посредством променлива. Стойността на променливата не може да бъде ключова дума (напр. self, parent и static не са позволени при динамичните референции към класове.
Example #1 Дефиниране и използване на константа
<?php
class MyClass
{
const constant = 'стойност на константата';
function showConstant() {
echo self::constant . "\n";
}
}
echo MyClass::constant . "\n";
$classname = "MyClass";
echo $classname::constant . "\n"; // От PHP 5.3.0
$class = new MyClass();
$class->showConstant();
echo $class::constant."\n"; // От PHP 5.3.0
?>
Example #2 Пример със статични данни
<?php
class foo {
// От PHP 5.3.0
const bar = <<<'EOT'
bar
EOT;
}
?>
За разлика от heredoc, nowdoc може да се използва в контекста на всякакви статични данни.
Забележка: Поддръжката на nowdoc е добавена в PHP 5.3.0.