phpのクラス定数で文字列連結ができるのは、PHPのバージョンが5.6.0以降になります。
phpのクラス定数の基本的な使い方
<?php
class MyClass
{
const CONSTANT = 'constant value';
function showConstant() {
echo self::CONSTANT . "\n";
}
}
echo MyClass::CONSTANT . "\n";
$class = new MyClass();
$class->showConstant();
php5.3.0以降で使用可能なクラス定数
変数を用いてクラスを参照することが可能になりました。
ヒアドキュメントや Nowdoc を用いた定数の初期化も使用できるようになりました。
<?php
class MyClass
{
const CONSTANT = 'constant value';
function showConstant() {
echo self::CONSTANT . "\n";
}
}
// 変数を用いてクラスを参照
$classname = "MyClass";
echo $classname::CONSTANT . "\n"; // PHP 5.3.0 以降で対応
// 変数を用いてクラスを参照
$class = new MyClass();
echo $class::CONSTANT."\n"; // PHP 5.3.0 以降で対応
class foo {
// PHP 5.3.0 以降で対応(Nowdoc)
const BAR = <<<'EOT'
bar
EOT;
// PHP 5.3.0 以降で対応(ヒアドキュメント)
const BAZ = <<<EOT
baz
EOT;
}
php5.6.0以降で使用可能なクラス定数
数値リテラルや文字列リテラルそして定数を含むスカラー式を指定できるようになりました。
const ONE = 1;
class foo {
// PHP 5.6.0 以降
const TWO = ONE * 2;
const THREE = ONE + self::TWO;
const SENTENCE = 'The value of THREE is '.self::THREE;
}
