Константы классов


Константы также могут быть объявлены и в пределах одного класса. Отличие переменных и констант состоит в том, что при объявлении последних или при обращении к ним не используется символ $.

Значение должно быть неизменяемым выражением, не (к примеру) переменной, свойством, результатом математической операции или вызовом функции.

Интерфейсы также могут содержать константы (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.