English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP基本チュートリアル

PHP高度なチュートリアル

PHP & MySQL

PHPリファレンスマニュアル

PHP 定数

このチュートリアルでは、PHPで固定値を保存するために定数を使用する方法を学びます。

PHPの定数とは何ですか

定数は固定値の名前または識別子です。定数は変数と同様に扱われますが、定数が一旦定義されると、定義を取り消したり変更することはできません(マジック定数除く)。

定数は、スクリプトの実行中に変更されないデータを保存するのに非常に役立ちます。このようなデータの一般的な例には、データベースのユーザー名とパスワード、ウェブサイトの基本的なURL、会社名などが含まれます。

定数はPHPのdefine()関数を使用して定義されます。この関数は、定数の名前と値の2つの引数を受け取ります。定数の値が定義されると、その名前を参照することでいつでもアクセスできます。以下はシンプルな例です:

<?php
// 定数の定義
define("SITE_URL", "https://ja.oldtoolbag.com/");
 
// 定数を使用して
echo 'ご訪問ありがとうございます - ' . SITE_URL;
?>
テストしてみる‹/›

上記のコードの出力は以下の通りです:

ご訪問ありがとうございます-https://ja.oldtoolbag.com/

PHPのecho文は、データを表示したりWebブラウザにデータを出力するために通常使用されます。次の章でその宣言について詳しく説明します。

ヒント:値を変数ではなく定数に保存することで、アプリケーションが実行中に値が意図せず変更されないことを確実にできます。

定数と変数の違いは

  • 定数の前にドル記号($)を書かない必要があり、変数の名前の前にドル記号を書く必要があります。

  • 定数はシンプルな割り当てでは定義できず、define()関数を使用してのみ定義できます。

  • 変数の範囲ルールを考慮せずに、どこでも定数を定義してアクセスすることができます。

  • 定数が設定されると、再定義や未定義にすることができません。

有効および無効な定数名

// 有効な定数名
define("ONE",  "first thing");
define("TWO2",  "second thing");
define("THREE_3",  "third thing");
define("__THREE__", "third value");
// 無効な定数名
define("2TWO",  "second thing");

PHPのマジック定数

PHPは実行する任何のスクリプトに多くのプレ定義の定数を提供します。
5つの魔法の定数は使用される場所によって変化します。例えば、__LINE__の値はスクリプト内で使用される行によって決まります。これらの特殊な定数は大文字小文字を区別しません。以下のようになります。-
以下はいくつかの「魔法の」PHP定数です-

Sr.No名前 & 説明
1

__LINE__

ファイルの現在の行番号。

2

__FILE__

ファイルの完全なパスとファイル名。Includeを使用している場合、含まれるファイルの名前が返されます。PHP 4.0.2から始めると、__FILE__は常に絶対パスを含みますが、旧バージョンでは、特定の状況で相対パスを含むことがあります。

3

__FUNCTION__

関数名。(PHP 4.3.0に追加)からPHP 5から始めると、この定数は宣言された関数名を返します(大文字小文字を区別)。PHP4では、その値は常に小文字です。

4

__CLASS__

クラス名。(PHP 4.3.0に追加)からPHP 5から始めると、この定数は宣言されたクラス名を返します(大文字小文字を区別)。PHP4では、その値は常に小文字です。

5

__METHOD__

クラスメソッド名。(PHP5.0.0に追加)メソッド名は宣言に従って返されます(大文字小文字を区別)。

PHP定数の命名規則

定数名は以下のとおり、変数名同じルールが適用されるため、有効な定数の名前は、文字またはアンダースコアで始まり、後続する文字、数字、またはアンダースコアの任意の数で構成される必要がありますが、一つの例外があります:定数の名前には前缀$が不要です。

注意:慣例に従って、定数の名前は大文字で書かれることが多いです。これはそれらが識別しやすく、ソースコード内の変数と区別しやすいからです。