PHP基本編2:PHPで定数を定義するには?クラス内で定義・呼び出しする方法も解説!

PHP入門

本記事ではPHPの定数について解説します。

define、constそれぞれを使った定数の定義方法についてまとめました。

定数についてよく分からない点がある方は参考にしてください。

定数とは?

定数とは途中で変わることのない値を意味し、変数とは対極に位置するものです。

定数は変数のように値を格納することが可能です。

変数は最初は「$test = 1」などと定義しても、その後で値を自由に変更することができます。

一方で定数は値を「1」と最初に定義したら、その後に変更することはできません

そのため、定数を使うことで「これは変更してはいけない値なんだな」と一瞬で分かるようになり、ソースコードの可読性を高めることに繋がります

システムは一度開発して終わりではなく、何回も改良を繰り返さなくてはいけません。

どの値は変更して良く、どの値は変更してはいけないのか一瞬で分かれば、改良のスピードを高めることが可能です。

このようにシステムの保守性を高めるうえで定数は重要な役割を果たしています。

PHPの変数について詳しく知りたい方はPHP基礎編1:変数のルールや使い方を解説をお読みください。

PHPの定数をdefineで定義する方法

最初に、PHPの定数をdefineで定義する方法について解説します。

次の手順に基づいて説明していきましょう。

  1. 定数を定義する
  2. 定数を大文字小文字区別なく定義する
  3. 定数を動的に定義する
  4. 配列定数を定義する

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つの手順に基づいて説明していきましょう。

  1. constで定数を定義する
  2. 配列定数を定義する

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の定数について解説しました。

定数の定義方法や呼び出し方法などがお分かりいただけたかと思います。

定数を使うことでプログラムの保守性を高めることが可能ですので、ぜひ使えるようになっておきましょう。

❤内容は役に立ちましたか?皆さまのご意見が励みになります☺
YesNo
無料でスキルを学んでからIT業界に転職

そろそろ本気で将来のことを考えなくちゃ……手に職をつけてIT業界に転職したいなぁ。でも、業界未経験だから、なんか敷居が高そう、と思っている方へ。

これからIT業界への転身を目指すあなたに、無料でスキルアップできて、平均で年収は90万円もアップできるんです。

PHP入門
【この記事を書いた人】
谷津弘樹

某自社開発のIT企業に勤めていた元webプログラマーです。主にサーバーサイド側を担当し、phpを使った開発経験があります。現在は退職しフリーランスライターとして活動中。IT系の記事を主に執筆し生計を立てています。

タイトルとURLをコピーしました