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を使った方が良いのかも...?

いいなと思ったら応援しよう!