カテゴリ: PHP 更新日: 2025/09/28

PHP の定数(define, const)を使った設定方法を徹底解説!

PHP の定数(define, const)を使った設定方法
PHP の定数(define, const)を使った設定方法

新人と先輩の会話形式で理解しよう

新人

「PHP の定数って何ですか?変数とどう違うんですか?」

先輩

「定数は、一度値を設定すると変更できない特別な変数みたいなものだよ。例えば、消費税率やアプリの設定値など、途中で変わらない値に使われることが多いんだ。」

新人

「なるほど!変数みたいに途中で変更できないんですね。どうやって作るんですか?」

先輩

「PHP では define()const という2つの方法で定数を定義できるよ。それじゃあ、詳しく見ていこう!」

-

1. PHP の定数とは?(基本的な説明)

1. PHP の定数とは?(基本的な説明)
1. PHP の定数とは?(基本的な説明)

PHP の定数とは、一度値を設定したら変更できない特殊な変数のようなものです。

例えば、消費税率やアプリの設定値など、途中で変更する必要がない値に使われます。

定数を使うメリット:

  • 誤って値を変更してしまうことがない
  • コードの可読性が向上する
  • 設定ファイルや環境変数として使うと便利

2. 定数と変数の違い

2. 定数と変数の違い
2. 定数と変数の違い

変数と定数の違いを表にまとめました。

項目 変数(Variable) 定数(Constant)
値の変更 可能($変数名 = 値; 不可(define()const を使用)
書き方 $変数名 で定義 define() または const を使用
スコープ 関数内で宣言すればローカル、それ以外はグローバル 基本的にグローバル

変数は値を変更できますが、定数は一度設定した値を変更することはできません。

3. 定数の基本的な使い方(define, const)

3. 定数の基本的な使い方(define, const)
3. 定数の基本的な使い方(define, const)

PHP では、定数を定義する方法が2つあります。

1. define() を使う方法

define() 関数を使うと、定数を作成できます。


<?php
define("サイト名", "PHP学習サイト");
echo サイト名;
?>

PHP学習サイト

define() は、定数名を 文字列 で指定する必要があります。また、関数の中でも動的に定義できるのが特徴です。

2. const を使う方法

const を使うと、定数を定義できます。


<?php
const バージョン = "1.0.0";
echo バージョン;
?>

1.0.0

constスクリプトの実行時に事前に定義 されるため、関数の中では使えません。

define() と const の違い

項目 define() const
スコープ グローバルのみ グローバル・クラス内
関数の中で定義 可能 不可
定義方法 define("名前", 値); const 名前 = 値;

基本的に、シンプルな定数なら const を、動的に設定したい場合は define() を使うのがよいでしょう。

4. define を使った定数の設定方法と注意点

4. define を使った定数の設定方法と注意点
4. define を使った定数の設定方法と注意点

PHP では define() を使うことで、定数を設定できます。define() は、動的に定数を定義できるため、設定ファイルや環境ごとに定数を切り替える際に便利です。

define() を使った基本的な定義


<?php
define("APP_NAME", "PHPアプリ");
define("VERSION", "1.0.0");

echo "アプリ名: " . APP_NAME . "<br>";
echo "バージョン: " . VERSION;
?>

アプリ名: PHPアプリ
バージョン: 1.0.0

define() の注意点

define() には以下の注意点があります。

  • 定数名は 文字列 で指定する必要がある(例: define("定数名", 値);
  • 関数の内部でも定義できる(動的な定数が作れる)
  • 後から変更できないため、定義時に注意が必要

関数内での define() の使用例


<?php
function 設定定義() {
    define("DB_HOST", "localhost");
}

設定定義();
echo DB_HOST;
?>

localhost

関数の中で定数を定義することができますが、関数を実行するまで定義されない ため、注意が必要です。

-

5. const を使った定数の設定方法と違い

5. const を使った定数の設定方法と違い
5. const を使った定数の設定方法と違い

PHP では、定数を定義する方法として const も利用できます。const はスクリプトの実行時に事前に定義されるため、関数内では使用できません。

const を使った基本的な定義


<?php
const サイト名 = "PHP学習サイト";
const バージョン = "1.0.0";

echo サイト名 . "(バージョン: " . バージョン . ")";
?>

PHP学習サイト(バージョン: 1.0.0)

const の注意点

  • 定数名に 文字列を使わずに 直接記述する(例: const 定数名 = 値;
  • 関数の内部では使えない
  • クラスの中で使用できる(クラス定数として利用可能)

関数の中で const を使うとエラー


<?php
function test() {
    const ERROR_MESSAGE = "エラー発生"; // 関数内ではエラー
}
?>

Parse error: syntax error, unexpected 'const'

このように、const は関数内で定義できないため、スクリプトのトップレベルやクラス内で使用する 必要があります。

クラスの中での const の使用例


<?php
class Config {
    const DB_HOST = "localhost";
    const DB_USER = "root";
}

echo Config::DB_HOST;
?>

localhost

このように、const はクラスの中で定数を定義する場合に適しています。

6. 定数の使いどころ(設定ファイルや環境変数)

6. 定数の使いどころ(設定ファイルや環境変数)
6. 定数の使いどころ(設定ファイルや環境変数)

定数は、設定情報や環境変数を管理するのに便利です。特に、設定ファイル にまとめて記述することで、コードの管理がしやすくなります。

設定ファイル(config.php)を使った例

設定ファイルを作成し、定数を定義しておくと、どこからでも利用できるようになります。


<?php
// config.php
define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASS", "password");
?>

そして、メインのスクリプトで config.php を読み込んで利用します。


<?php
include "config.php";

echo "データベースホスト: " . DB_HOST;
?>

データベースホスト: localhost

環境変数としての活用

サーバー環境ごとに異なる設定を管理する場合、環境変数を定数として利用することもあります。


<?php
define("ENV", getenv("APP_ENV"));

if (ENV === "production") {
    define("DEBUG_MODE", false);
} else {
    define("DEBUG_MODE", true);
}

echo "デバッグモード: " . (DEBUG_MODE ? "ON" : "OFF");
?>

デバッグモード: ON

このように、getenv() を使って環境変数を取得し、定数として扱うことで、環境に応じた設定を柔軟に管理できます。

まとめ

PHP の定数は、アプリケーションの設定値や環境変数を管理するのに便利です。特に、define() は動的に定義できる点が特徴で、const はクラス内で使用できるため、適切に使い分けましょう。

7. 定数のスコープ(グローバル定数とクラス定数)

7. 定数のスコープ(グローバル定数とクラス定数)
7. 定数のスコープ(グローバル定数とクラス定数)

PHP では、定数のスコープ(適用範囲)を理解することが重要です。定数には、グローバル定数とクラス定数の2種類があります。

グローバル定数

グローバル定数は、define() または const を使って定義され、スクリプトのどこからでもアクセスできます。


<?php
define("APP_VERSION", "1.0.0");
echo "アプリのバージョン: " . APP_VERSION;
?>

アプリのバージョン: 1.0.0

グローバル定数は、関数やクラスの外側で定義され、スクリプト全体で利用できます。

クラス定数

クラス定数は、const を使ってクラスの中で定義します。クラス定数は、オブジェクトを作成しなくても直接アクセスできます。


<?php
class AppConfig {
    const VERSION = "2.0.0";
}

echo "クラスのバージョン: " . AppConfig::VERSION;
?>

クラスのバージョン: 2.0.0

クラス定数は、クラスの内部で定義され、クラス名::定数名 の形式でアクセスできます。

8. 定数を使う際のベストプラクティス(命名規則や使い分け)

8. 定数を使う際のベストプラクティス(命名規則や使い分け)
8. 定数を使う際のベストプラクティス(命名規則や使い分け)

定数を使う際には、いくつかのベストプラクティスを意識することで、コードの可読性と保守性を向上させることができます。

1. 命名規則

定数名は、以下のルールに従うのが一般的です。

  • すべて大文字(例:APP_NAME
  • 単語の区切りはアンダースコア(_)(例:DB_HOST
  • わかりやすい名前を付ける(例:MAX_USERS など)

2. 定数の使い分け

PHP では、用途に応じて define()const を使い分けることが重要です。

用途 推奨される定義方法
シンプルな定数 const
動的に定義する定数 define()
クラスの中で使用する定数 const
設定ファイルの定義 define()

基本的に、定数をシンプルに定義する場合は const を、設定ファイルや動的な定数を定義する場合は define() を使うとよいでしょう。

9. 定数を活用した実践的なサンプルコード(アプリ設定や環境変数の利用)

9. 定数を活用した実践的なサンプルコード(アプリ設定や環境変数の利用)
9. 定数を活用した実践的なサンプルコード(アプリ設定や環境変数の利用)

定数を活用することで、アプリの設定や環境変数を統一的に管理できます。

1. 設定ファイルを使った例

アプリの設定を config.php にまとめておくと、管理がしやすくなります。


<?php
// config.php
define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASS", "password");
define("APP_ENV", "development");
?>

そして、メインのスクリプトで設定ファイルを読み込んで利用します。


<?php
include "config.php";

echo "データベースホスト: " . DB_HOST;
?>

データベースホスト: localhost

2. 環境変数を使った例

環境ごとに設定を変更したい場合、環境変数を定数として利用することができます。


<?php
define("ENV", getenv("APP_ENV"));

if (ENV === "production") {
    define("DEBUG_MODE", false);
} else {
    define("DEBUG_MODE", true);
}

echo "デバッグモード: " . (DEBUG_MODE ? "ON" : "OFF");
?>

デバッグモード: ON

このように、getenv() を使って環境変数を取得し、定数として扱うことで、環境に応じた設定を柔軟に管理できます。

3. クラスを使った設定の管理

定数をクラスの中で使うことで、設定をより整理することができます。


<?php
class Config {
    const DB_HOST = "localhost";
    const DB_USER = "root";
    const DB_PASS = "password";

    public static function getDbConfig() {
        return [
            "host" => self::DB_HOST,
            "user" => self::DB_USER,
            "pass" => self::DB_PASS
        ];
    }
}

$dbConfig = Config::getDbConfig();
echo "データベースホスト: " . $dbConfig["host"];
?>

データベースホスト: localhost

このように、クラスを使って定数をまとめることで、アプリケーションの設定を整理しやすくなります。

まとめ

まとめ
まとめ

PHP における定数の使い方は、アプリケーションの構成やコードの保守性に大きな影響を与える重要なポイントです。この記事では define()const の違いや使い方を中心に、設定ファイルでの実用例やクラス定数としての活用方法まで幅広く学びました。

定数を活用することで、コードの再利用性が高まり、変更に強い設計が実現できます。特に環境変数の読み込みや、開発・本番環境の切り替えにおいては、定数を利用することで安全かつ効率的に運用できます。

また、定数名の命名規則(全て大文字+アンダースコア区切り)や、用途に応じた使い分け(関数内では define、クラス内では const)といったベストプラクティスを意識することで、より読みやすくメンテナンス性の高いコードが書けるようになります。

実用例:環境ごとの切り替えを管理する定数の使い方




現在の環境: development
データベース: localhost
デバッグモード: ON

上記のように、定数と環境変数を組み合わせることで、アプリの実行環境に応じた柔軟な設定が可能になります。PHP で安定したシステムを作るためには、こうした定数の正しい使い方を身につけておくことが重要です。

先生と生徒の振り返り会話

新人

「今回、PHP の定数について色々学びましたが、最終的には define()const をどう使い分けるかがポイントなんですね。」

先輩

「その通り!動的に値を設定したいなら define() を、静的に構造化したいなら const を使うのが基本だよ。」

新人

「クラスの中では const、関数の中では define() なんですね。エラーが出る理由がよくわかりました。」

先輩

「それに定数名の命名規則も重要だよ。全て大文字でアンダースコア区切りにすることで、他の変数との違いが明確になるからね。」

新人

「はい!今後は設定ファイルや環境変数を扱うときにも、定数を使って管理するようにします!」

先輩

「よし、それでこそ一人前の PHP エンジニアだね。定数の扱いをマスターすれば、コードの安定性もグッと上がるよ!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

PHPの定数と変数の違いがよくわかりません。どんな場面で使い分けるのですか?

PHPでは、変数は値をあとから変更できるのに対して、定数は一度設定したら変更できません。消費税率や設定ファイルの値など、固定の値を扱いたいときに定数を使います。
コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
Pythonで文字列をリストに変換する方法!split()とjoin()の使い方
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
PHPでメールフォームを作る方法を徹底解説!初心者向けにmail関数とPHPMailerの使い方も紹介
人気記事
No.1
PHP&Python記事人気No1
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
PHP&Python記事人気No2
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.3
PHP&Python記事人気No3
Pythonのリストを辞書に変換する方法(dict() / zip())
No.4
PHP&Python記事人気No4
初心者向けにPHP でファイルを開く・読み込む・書き込む方法(fopen, fwrite, fread)を解説する記事
-