規定値などの予め決められた値を設定するためには、定数を使用する場合があります。
PHPでは、定数を指定する方法としてdefineとconstがあります。
この記事ではdefineの、
・defineとは?
・defineの基本的な使い方
という基本的な内容から、
・defineで配列を定義する方法
・defineの注意点
・constで定数を定義する方法
などのdefineで定数を定義する応用的な使い方についても解説していきます。
今回はそんなdefineで定数を定義するさまざまな方法について、わかりやすく解説します!
defineとは
定数とは、既定値や既に決まっている値を予め指定しておくIDのようなもので、プログラムの初期段階で設定し、以降定数の値を変更することはできません。
また、定数は通常の変数と区別するために、基本的にアルファベットの大文字で記述するのが慣例となっています。
定数を定義するdefineは、以下のように記述します。
defineの書き方:
bool define ( $定数名 , $値 [, bool $case_insensitive = false ] )
defineは第一引数に定数名を指定し、第二引数に定数の値を指定します。
PHP7からは第二引数の値に配列を指定することもできるようになりました。
第三引数にTRUEを指定すると、定数の大文字小文字を区別しないようになります。なお、デフォルトでは大文字小文字は区別されます。
defineで定数を定義してみよう!
以下にdefineを指定して、定数を定義する簡単な方法を記述します。
<?php //定数を定義する define('CONSTSTR1', 'Samurai'); define('CONSTSTR2', 'Engineer'); echo CONSTSTR1; echo CONSTSTR2; ?>
実行結果:
SamuraiEngineer
defineで定義した内容は、前述したようにあとから値を変更することはできませんので注意しましょう。
defineで配列定数を定義する
定数はPHP7から配列を指定することが可能となりました。
ここでは、defineで配列を定義する方法について紹介します。
1次元配列の定数
defineで配列を定義するためには、defineの第二引数に配列を指定します。
以下に配列の定数を定義する方法を記述します。
<?php define('FRUITS', array( 'apple', 'orange', 'melon', 'banana', 'pineapple' )); print_r(FRUITS); ?>
実行結果:
Array ( [0] => apple [1] => orange [2] => melon [3] => banana [4] => pineapple )
連想配列の定数
定数では上述した1次元配列の他に、連想配列や多次元配列を定義することもできます。
以下にdefineで連想配列を定義する簡単なサンプルを記述します。
<?php define('FRUITS', array( 'apple'=>'100円', 'orange'=>'80円', 'melon'=>'600円', 'banana'=>'100円', 'pineapple'=>'450円' )); print_r(FRUITS); ?>
実行結果:
Array ( [apple] => 100円 [orange] => 80円 [melon] => 600円 [banana] => 100円 [pineapple] => 450円 )
このように連想配列を定義することも可能です。
大文字小文字の判定
前述したようにdefineで定義した定数は大文字小文字を明確に区別します。
そのため、以下のように小文字で指定した場合は、定義されていない定数と判断されて警告が発生します。
<?php //定数を定義する define('CONSTSTR1', 'Samurai'); define('CONSTSTR2', 'Engineer'); echo conststr1;
実行結果:
PHP Notice: Use of undefined constant conststr1 - assumed 'conststr1' in /workspace/Main.php on line 7
大文字小文字を区別しないようにするにはdefineの第三引数にtrueを指定する必要があります。
<?php define('CONSTSTR1', 'Samurai', true); define('CONSTSTR2', 'Engineer', true); echo conststr1; echo conststr2; ?>
実行結果 SamuraiEngineer
constで定数を定義する
PHPで定数を定義する方法は、先に紹介したdefineの他にクラス内で定義するオブジェクト定数であるconstがあります。
constはクラス内部で定数を定義するときに、constの後に定数名と値を指定します。
class クラス名{ const 定数名 = 値; }
defineとconstの違いは、
- constはクラス内部で定数を定義できるがdefineはできない
- constは名前空間の影響を受けるがdefineは受けない
constによる定数を定義する方法については、以下の記事で詳しく解説していますので、ぜひ参考にしてくださいね!
PHPについてもっと知りたい方へ
「PHPについて実はいまいちわかっていない・・・」
「もっとPHPについて詳しく知りたい!」
と思っている方は以下の記事も参考にしてみてください!
まとめ
ここでは、defineを使用した定数を定義する方法について解説しました。
定数はPHPに限らずさまざまな言語で使用しますので、この機会に使い方を覚えておきましょう。
もし、defineによる定数を定義する方法を忘れてしまったら、この記事を思い出してくださいね。