클래스마다 값을 변경할수없는 상수값을 정의하는것이 가능합니다. 상수는 일반 변수와 달리 선언하거나 사용할때 $ 기호를 사용할 수 없습니다.
값은 상수를 표현해야 합니다. (예를들어) 변수, 프로퍼티, 수학적 연산이나 함수의 리턴값이 될수 없습니다.
인터페이스는 상수를 가질 수 있습니다. interface 문서 에서 그 예를 확인하실 수 있습니다.
PHP 5.3.0 이후에는 변수를 사용하여 클래스를 참조할수 있습니다. 변수 값은 키워드가 될수가 없습니다.(예를들어 self,parent and static)
Example #1 상수의 정의와 사용
<?php
class MyClass
{
const CONSTANT = 'constant value';
function showConstant() {
echo self::CONSTANT . "\n";
}
}
echo MyClass::CONSTANT . "\n";
$classname = "MyClass";
echo $classname::CONSTANT . "\n"; // As of PHP 5.3.0
$class = new MyClass();
$class->showConstant();
echo $class::CONSTANT."\n"; // As of PHP 5.3.0
?>
Example #2 정적 데이터 예제
<?php
class foo {
// As of PHP 5.3.0
const BAR = <<<'EOT'
bar
EOT;
}
?>
heredoc 과 달리, nowdoc 은 정적데이터 컨텍스트 내에서 사용될수 있습니다.
Note:
Nowdoc 지원이 PHP 5.3.0 에 추가되었습니다.