PHPで定数宣言のdefine関数とconst構文について
PHPでの定数宣言について。
define()で定数を宣言する
PHPで定数を宣言するときは下のようにする。
define('CONST_NAME', 'CONST_VALUE');
print(CONST_NAME); // => COUST_VALUE
PHPではdefine関数で宣言した定数は、どのスコープにいてもグローバル変数となります。もちろん宣言するのは"定数"ですので、再宣言や再代入はできません。
PHPの普通の変数と違うところは、"$"を使わないで呼び出しができるところですかね。上記の'CONST_VALUE'の箇所に変数を置くこともできます。第三引数には、大文字・小文字を区別するかどうかを与えることができます。例えば下のようなコードを書くと...
define('SAYHELLO', 'HELLO', TRUE);
print(SAYHELLO); // => HELLO
print(sayhello); // => HELLO
第三引数にTRUEを与えると、定数名は大文字・小文字でも区別されなくなります。
define()とconstの違い
PHPではオナ以上に定数を宣言できるものとしてconst構文があります。defineとconstの違いは、スコープが異なる点です。const構文ではローカルスコープ定数となるので、クラス定数となります。const構文はPHP5.3かららしいです。また、count構文で宣言時には、右辺に指揮をおくことが出来ません。注意。
defineは関数であるのに対して、constは構文であることから、処理スピードはconstの方が早いらしいです。大量に定数を使うのであれば、constを使った方が良いのかも...?