今回は定数です。プログラミング言語の主な機能のひとつで、大体のプログラミング言語にこの機能は存在します。基本的な動きはどのプログラミング言語も変わらないので、PHPでの定数の書き方を学んでいただければと思います。

PHPの定数

3年以上前に更新されました。情報が古い可能性があります。
更新日 : 2019年02月26日

今回は定数です。プログラミング言語の主な機能のひとつで、大体のプログラミング言語にこの機能は存在します。

基本的な動きはどのプログラミング言語も変わらないので、PHPでの定数の書き方を学んでいただければと思います。

PHPでの定数の書き方

PHPでの定数の宣言方法は2種類存在します。以下のコードを見てください。

<?php
	const CONSTANT = "これは定数です。";
	define("CONSTANT2", "これは定数2つ目です。");

	echo CONSTANT;
	echo "<br>";
	echo CONSTANT2;
?>

これの実行結果が以下になります。

PHPの定数実行結果
PHPの定数実行結果

constでの定数宣言

最初の定数名CONSTANTに関しては通常の変数宣言と似ています。
定数名CONSTANTの前にconstがありますが、これが定数であることの宣言になります。

定数として宣言することによって、このデータは書き換えが不可能になります。

そのため、以下のコードはエラーとなります。

<?php
	const CONSTANT = "これは定数です。";

	CONSTANT = "やっぱりこの定数にします。";

	echo CONSTANT;
?>

書き換えが不可能なため、CONSTANT = "やっぱりこの定数にします。"; のようにあとから変更することはできません。

また、PHPの変数とは違い、定数名には$が不要となります。

define()での定数宣言

最初のコードではdefine("CONSTANT2", "これは定数2つ目です。");というコードも出てきました。

こちらはPHPの標準で実装されている関数を使用したパターンです。

関数については別の記事で書いていきますので割愛させていただきます。

define("定数名", 左の定数名に入れたいデータ)としてあげることで定数宣言が可能になります。

どちらの定数宣言を使用するか

現在MAMPのインストール記事からこちらのブログで始めている方はPHPのバージョンが7以上かと思います。

constで使用できるようになったのはPHPの5.3以降からなのでdefine()を使用すればどんなバージョンでもある程度動きます。

PHPのバージョンというのは、iPhoneやAndroidでもあるアプリケーションのバージョンアップのようなものだと思っていてください。プログラミング言語自体のバージョンアップが存在します。

厳密にはdefine()constではできることできないことがそれぞれあり、一長一短な部分はあります。
今回の記事では詳しい内容については省略しますが、定数という動作の意味上、constを使用していく形で問題ないです。

すでに定義されている定数

PHPの定数の宣言・定義方法は学びました。実はPHPの定数にはすでに定義されていて呼び出すだけの定数がいくつか存在します。

PHP_VERSIONという定数ではPHPのバージョン情報がわかります。コードを書いて試してみてください。

その他PHPの実行環境に関係するものなど、様々な定数が存在します。すべてご紹介するのは大変なので、PHPのマニュアルサイトをご覧ください。

マジック定数

定義済み定数の中でも、プログラム実行中に自動で変化する定数も存在します。

__LINE__という定数では実行したファイルの現在の行番号などがわかります。

コードを書いて実行すると行番号が出力されるのがわかるかと思います。
マジック定数についてもいくつか種類が存在するのでPHPのマニュアルサイトをご覧ください。

まとめ

PHPの定数については意外とたくさん書くことがありました。

今回1番重要なのはPHPの定数宣言の方法です。

定数を利用することによって必ず替えてはいけないデータを、定数として利用することができます。実際に使う場面にならないと利用価値がはっきりしないこともあるかと思いますが、必ず必要な知識なのでなんとなく使い方を知っておくといいと思います。