これは知らなかったので、ちょっとショックです。
試しに調べてみたら、ドキュメント(「定数」)にちゃんと書いてあったので、すぐに分かりました。
const ANIMALS = array('dog', 'cat', 'bird');
echo ANIMALS[1]; // 出力は "cat"
PHP7 なら、define でも次のように書けます。
define('PETS', ['dog', 'cat', 'bird']);
echo PETS[2]; // 出力は "bird"
多重配列もOKです。
どんどん便利に使っていきましょう。
ポイントをまとめました。
- const は動的に値をセットすることはできないし、大文字・小文字の区別をつけるかの設定が冗長的になる。
- define は、第3引数に true を設定すると、大文字・小文字の区別をつけないようになる。
- PHP 5.3 より前のバージョンでは、定数を定義することができるのは、define() 関数のみ
- PHP 5.3 以降では const キーワードを使って定義することが出来る
- PHP 5.6 より前のバージョンでは、const キーワードで定数に指定できるのは、スカラデータ (boolean, integer, double, string) のみ
- PHP 5.6 以降では、const を使って、定数に配列を設定することができる
- PHP 7 以降では、define を使って、定数に配列を設定することができる
公式ドキュメント以外の記事だと、「定数には配列は設定できない」という古い記事がまだまだあるので、要注意ですね。
本ブログでも、なるべく古い情報のまま掲載を続けないよう気をつけたいと思います。
最新のPHP7にも対応している書籍↓ オススメです。
コメント