Константы также могут быть объявлены и в пределах одного класса. Отличие переменных и констант состоит в том, что при объявлении последних или при обращении к ним не используется символ $.
Значение должно быть неизменяемым выражением, не (к примеру) переменной, свойством, результатом математической операции или вызовом функции.
Интерфейсы также могут содержать константы (constants). За примерами обращайтесь к разделу об интерфейсах.
Начиная с версии PHP 5.3.0, стало возможным обратиться к классу с помощью переменной. Значение переменной не должно быть ключевым словом (например, self, parent или static).
Пример #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
?>
Пример #2 Пример со статичными данными
<?php
class foo {
// Начиная с версии PHP 5.3.0
const BAR = <<<'EOT'
bar
EOT;
}
?>
В отличие от heredoc, nowdoc может быть использован в любом контексте статичных данных.
Замечание:
Поддержка nowdoc была добавлена в версии PHP 5.3.0.