本記事ではPHPの定数について解説します。
define、constそれぞれを使った定数の定義方法についてまとめました。
定数についてよく分からない点がある方は参考にしてください。
定数とは?
定数とは途中で変わることのない値を意味し、変数とは対極に位置するものです。
定数は変数のように値を格納することが可能です。
変数は最初は「$test = 1」などと定義しても、その後で値を自由に変更することができます。
一方で定数は値を「1」と最初に定義したら、その後に変更することはできません。
そのため、定数を使うことで「これは変更してはいけない値なんだな」と一瞬で分かるようになり、ソースコードの可読性を高めることに繋がります。
システムは一度開発して終わりではなく、何回も改良を繰り返さなくてはいけません。
どの値は変更して良く、どの値は変更してはいけないのか一瞬で分かれば、改良のスピードを高めることが可能です。
このようにシステムの保守性を高めるうえで定数は重要な役割を果たしています。
PHPの変数について詳しく知りたい方はPHP基礎編1:変数のルールや使い方を解説をお読みください。
PHPの定数をdefineで定義する方法
最初に、PHPの定数をdefineで定義する方法について解説します。
次の手順に基づいて説明していきましょう。
- 定数を定義する
- 定数を大文字小文字区別なく定義する
- 定数を動的に定義する
- 配列定数を定義する
1)定数を定義する
まず、defineを使った一般的な定数の定義方法をみていきましょう。
○コード例
<?php
define("TEST", "Hello World!!");
echo TEST;
?>
○実行結果
上記のコードは「TEST」という定数に「Hello World!!」という文字列を格納しています。
このようにdefine関数の第一引数に定数名、第二引数に文字列を記入します。
定数名を使うだけで格納した文字列を出力することが可能です。
これが定数の基本的な使い方となります。
2)定数を大文字小文字区別なく定義する
大文字で定義した定数を小文字で呼び出そうとすると、普通は上手くいきません。
○コード例
<?php
define("TEST", "Hello World!!\n");
echo test;
?>
○実行結果
上記のように定数に格納された文字列が表示されず「test」がそのまま表示されてしまいます。
大文字小文字区別なく定義する場合、define関数の第三引数を利用します。
○コード例
<?php
define("TEST", "Hello World!!\n", TURE);
echo test;
?>
○実行結果
上記のコードではdefine関数に「TURE」というフラグを立てています。
こうすることで大文字小文字関係なく呼び出すことが可能です。
3)定数を動的に定義する
続いて、定数を動的に定義する方法をみていきましょう。
○コード例
<?php
define("KEISAN", 2+4);
echo KEISAN;
?>
○実行結果
上記のコードでは、定数を定義するタイミングで「2+4」の計算を行っています。
このように定数は動的に定義することも可能です。
4)配列定数を定義する
最後に、define関数で配列定数を定義する方法をみていきましょう。
定数は文字列や数値だけでなく配列も定義することが可能です。
○コード例
<?php
define("FRUIT", ["Apple", "Banana", "Orange"]);
echo FRUIT[0];
?>
○実行結果
上記のコードでは「 [“Apple”, “Banana”, “Orange”]」という配列をFRUITという定数に格納しています。
配列定数は通常の配列同様にインデックス番号を指定することで呼び出すことが可能です。
また、連想配列も定数として定義することが可能です。
○コード例
<?php
define("FRUIT", [“key1”=>"Apple", “key2”=>"Banana",“key3”=>"Orange"]);
echo FRUIT[key2];
?>
○実行結果
上記のように、連想配列を呼び出す際はkeyを指定します。
PHPの定数をconstで定義する方法
続いて、PHPの定数をconstで定義する方法について解説します。
次の2つの手順に基づいて説明していきましょう。
- constで定数を定義する
- 配列定数を定義する
1)constで定数を定義する
定数を定義する際はdefine関数を使うのが基本です。
しかし、PHPにはもう1つconstという機能があり、こちらでも定義することができます。
constの特徴はクラス内での定義が可能なことです。
クラス内で定数を定義したい場合はconstが使われます。
例をみていきましょう。
○コード例
<?php
class ConstTest
{
const TEXT = "Hello World!!\n";
function outputConst(){
echo self::TEXT;
}
}
$test = new ConstTest();
$test->outputConst();
?>
○実行結果
上記のコードではクラス内でTEXT定数を定義しています。
「const 定数名」と記載することで定数を定義できます。
outputConst関数で定数を出力するようにしています。
外部からこの関数を呼び出すことで定数を出力することが可能です。
2)配列定数を定義する
constでもdefine同様に配列定数を定義することが可能です。
○コード例
<?php
class ConstTest
{
const TEXT = ["Apple", "Banana", "Orange"];
function outputConst(){
echo self::TEXT[2];
}
}
$test = new ConstTest();
$test->outputConst();
?>
○実行結果
上記では「 [“Apple”, “Banana”, “Orange”]」という配列をTEXT定数に格納しています。
後は先程同様にoutputConst関数を呼び出して出力しています。
まとめ
本記事ではPHPの定数について解説しました。
定数の定義方法や呼び出し方法などがお分かりいただけたかと思います。
定数を使うことでプログラムの保守性を高めることが可能ですので、ぜひ使えるようになっておきましょう。