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; }