PHPリファレンス
UPDATE:2019年09月18日
PHP の マジカル定数(マジック定数)
PHP5 PHP7
マジカル定数(マジック定数)簡単まとめ
1 Minute Note
- マジカル定数(マジック定数)は PHPで自動的に定義される定数
- 使用方法によって値が変化する
- 大文字小文字を区別しない
- マジカル定数
__LINE__ 行番号
__FILE__ ファイルパス
__DIR__ ディレクトリパス
__FUNCTION__ 関数名
__CLASS__ クラス名
__TRAIT__ トレイト名
__METHOD__ クラスのメソッド名
__NAMESPACE__ 現在の名前空間の名前
マジカル定数(マジック定数)はPHPで自動的に定義される定数のことです。通常定数の値は変化しませんが、マジカル定数は使用方法によって値が変化します。
マジカル定数(マジック定数)とは
POINT
- マジカル定数(マジック定数)はPHPで自動的に定義される定数
- 使用方法によって値が変化する
- 大文字小文字を区別しない
本来 定数 は定義後に値の変更はできません。ですが、使用方法によって変化し、自動的に定義される定数が9つ(PHP5.3から8つ)(PHP5.5から9つ)あります。これらをマジカル定数(マジック定数)といいます。
例えば、マジカル定数の__LINE__は記述した箇所のPHPファイル上の行数を返します。記述した箇所によって行数が変わるので値は変化します。
マジカル定数は大文字小文字を区別しません。
1 2 3 4 5 6 7 8 9 10 11 12 | <!-- サンプルコード --> <h3>__LINE__</h3> <?php echo '現在の行は、「'.__LINE__.'」 行目です。<br>'; echo '現在の行は、「'.__line__.'」 行目です。'; ?> <h3>__FILE__</h3> <?php echo '現在のファイルパスは、「'.__FILE__.'」 です。<br>'; echo '現在のファイルパスは、「'.__file__.'」 です。'; ?> |
結果は
__LINE__
現在の行は、「33」 行目です。
現在の行は、「34」 行目です。
__FILE__
現在のファイルパスは、「・・・パス情報/code-example/php/3-1-12.php」 です。
現在のファイルパスは、「・・・パス情報/code-example/php/3-1-12.php」 です。
現在の行は、「33」 行目です。
現在の行は、「34」 行目です。
__FILE__
現在のファイルパスは、「・・・パス情報/code-example/php/3-1-12.php」 です。
現在のファイルパスは、「・・・パス情報/code-example/php/3-1-12.php」 です。
となります。
PHPのマジカル定数
定数 | 説明 |
---|---|
__LINE__ | 行番号 __LINE__を記述したPHPファイルの現在の行番号を表示します。 |
__FILE__ | ファイルパス ファイルのフルパスとファイル名。インクルードされるファイルの 中で使用された場合、インクルードされるファイルの名前が返されます。 PHP 4.0.2 以降では __FILE__ は常に絶対パスで、シンボリックリンクは解決されます。 それより前のバージョンでは、場合によっては相対パスが返されることもあります。 |
__DIR__ | ディレクトリパス そのファイルの存在するディレクトリ。include の中で使用すると、 インクルードされるファイルの存在するディレクトリを返します。 つまり、これは dirname(__FILE__) と同じ意味です。 ルートディレクトリである場合を除き、ディレクトリ名の末尾にスラッシュはつきません (PHP 5.3.0 で追加されました)。 |
__FUNCTION__ | 関数名 (PHP4.3.0で追加されました)PHP 5以降、この定数は宣言時の関数名(ケース依存)を返します。 PHP 4では、この値は常に小文字で返されました。 |
__CLASS__ | クラス名 (PHP4.3.0で追加されました)PHP 5以降、この定数は宣言時のクラス名(ケース依存)を返します。 PHP 4では、この値は常に小文字で返されました。 クラス名には、そのクラスが宣言されている名前空間も含みます (例 Foo/Bar)。 |
__TRAIT__ | トレイト名 (PHP5.4.0で追加されました)トレイト名には、宣言された名前空間も含みます (例 Foo/Bar)。 |
__METHOD__ | クラスのメソッド名 (PHP5.0.0で追加されました)メソッド名は宣言時と同じ(ケース依存)を返します。 |
__NAMESPACE__ | 現在の名前空間の名前 (大文字小文字を区別します)。 この定数はコンパイル時に定義されます (PHP 5.3.0 で追加されました)。 |
ClassName::class | クラスの完全修飾名を文字列で取得する (PHP 5.5.0 で追加されました)。 |
自動的に定義される定数とは
PHPには多くの定義済み定数があります。これらの定数は実行されるスクリプト中であれば使用可能です。但し、これらの定数の多くは、拡張モジュールにより自動的に定義されます。従って、拡張モジュールが使用可能な場合は自動的に定数が定義され、定数が使用可能になりますが、そうでない場合は使用できません。
拡張モジュールは、PHPコンパイル時に組込む場合や、dl()関数を使用して、動的にロードしたりします。拡張モジュールを利用することでzipファイルを作成したり、様々な機能を利用できるようになります。
定義済みの定数 PHP, Zend engine, SAPI モジュール含む
以下の定数は PHP のコアで定義済みの定数です。 PHP, Zend engine, SAPI モジュールも含みます。
定数 | 説明 |
---|---|
PHP_VERSION (string) | 現在の PHP のバージョンを"major.minor.release[extra]"形式の文字列で表したもの。 |
PHP_MAJOR_VERSION (integer) | 現在の PHP のメジャーバージョンを整数値で表したもの(たとえば、バージョンが "5.2.7-extra" の場合は int(5) となる)。PHP 5.2.7 以降で利用可能。 |
PHP_MINOR_VERSION (integer) | 現在の PHP のマイナーバージョンを整数値で表したもの(たとえば、バージョンが "5.2.7-extra" の場合は int(2) となる)。PHP 5.2.7 以降で利用可能。 |
PHP_RELEASE_VERSION (integer) | 現在の PHP のリリースバージョンを整数値で表したもの(たとえば、バージョンが "5.2.7-extra" の場合は int(7) となる)。PHP 5.2.7 以降で利用可能。 |
PHP_VERSION_ID (integer) | 現在の PHP のバージョンを整数値で表したもの。バージョンを比較する際に有用(たとえば、バージョンが "5.2.7-extra" の場合は int(50207) となる)。PHP 5.2.7 以降で利用可能。 |
PHP_EXTRA_VERSION (string) | 現在の PHP の追加バージョンを文字列で表したもの(たとえば、バージョンが "5.2.7-extra" の場合は '-extra' となる)。ディストリビューションのベンダーが、パッケージのバージョンを示すために使うことが多い。PHP 5.2.7 以降で利用可能。 |
PHP_ZTS (integer) | PHP 5.2.7 以降で利用可能。 |
PHP_DEBUG (integer) | PHP 5.2.7 以降で利用可能。 |
PHP_MAXPATHLEN (integer) | この PHP がサポートする、ファイル名の長さ (パスを含む) の最大値。PHP 5.3.0 以降で利用可能。 |
PHP_OS (string) | PHP がビルドされた OS。 |
PHP_OS_FAMILY (string) | The operating system family PHP was built for. Either of 'Windows', 'BSD', 'Darwin', 'Solaris', 'Linux' or 'Unknown'.PHP 7.2.0 以降で利用可能。 |
PHP_SAPI (string) | この PHP のサーバー API。 php_sapi_name() も参照ください。 |
PHP_EOL (string) | このプラットフォームの行末文字。PHP 5.0.2 以降で利用可能。 |
PHP_INT_MAX (integer) | この PHP がサポートする整数型の最大値。通常は int(2147483647)。PHP 5.0.5 以降で利用可能。 |
PHP_INT_MIN (integer) | この PHP がサポートする整数型の最小値。通常は、32ビットシステムなら int(-2147483648)、64ビットシステムなら int(-9223372036854775808)。PHP 7.0.0 以降で利用可能。通常は PHP_INT_MIN === ~PHP_INT_MAX となる。 |
PHP_INT_SIZE (integer) | この PHP ビルドにおける整数型のサイズ (バイト数)。PHP 5.0.5 以降で利用可能。 |
PHP_FLOAT_DIG (integer) | float への丸めやその逆操作の際に精度を維持できる数値の桁数。PHP 7.2.0 以降で利用可能。 |
PHP_FLOAT_EPSILON (float) | x + 1.0 != 1.0 となる正の数 x のうちで、浮動小数点数値として表せる最小の数。PHP 7.2.0 以降で利用可能。 | PHP_FLOAT_MIN (float) | 浮動小数点数値として表せる最小の数。PHP 7.2.0 以降で利用可能。 |
PHP_FLOAT_MAX (float) | 浮動小数点数値として表せる最大の数。PHP 7.2.0 以降で利用可能。 |
DEFAULT_INCLUDE_PATH (string) | |
PEAR_INSTALL_DIR (string) | |
PEAR_EXTENSION_DIR (string) | |
PHP_EXTENSION_DIR (string) | |
PHP_PREFIX (string) | configure 時に設定された "–prefix" の値。 |
PHP_BINDIR (string) | バイナリのインストール先。 |
PHP_BINARY (string) | スクリプト実行時の PHP バイナリのパス。PHP 5.4 以降で利用可能。 |
PHP_MANDIR (string) | man ページのインストール先。PHP 5.3.7 以降で利用可能。 |
PHP_LIBDIR (string) | |
PHP_DATADIR (string) | |
PHP_SYSCONFDIR (string) | |
PHP_LOCALSTATEDIR (string) | |
PHP_CONFIG_FILE_PATH (string) | |
PHP_CONFIG_FILE_SCAN_DIR (string) | |
PHP_SHLIB_SUFFIX (string) | このプラットフォームの共有ライブラリの拡張子。"so" (多くの Unix 系 OS)や "dll" (Windows) など。 |
PHP_FD_SETSIZE (string) | select システムコール用のファイルディスクリプタの最大数。PHP 7.1.0 以降で使用可能です。 |
E_ERROR (integer) | エラーを報告する定数 |
E_WARNING (integer) | |
E_PARSE (integer) | |
E_NOTICE (integer) | |
E_CORE_ERROR (integer) | |
E_CORE_WARNING (integer) | |
E_COMPILE_ERROR (integer) | |
E_COMPILE_WARNING (integer) | |
E_USER_ERROR (integer) | |
E_USER_WARNING (integer) | |
E_USER_NOTICE (integer) | |
E_DEPRECATED (integer) | PHP 5.3.0 以降で利用可能 |
E_USER_DEPRECATED (integer) | PHP 5.3.0 以降で利用可能 |
E_ALL (integer) | |
E_STRICT (integer) | |
__COMPILER_HALT_OFFSET__ (integer) | PHP 5.1.0 以降で利用可能 |
TRUE (boolean) | |
FALSE (boolean) | |
NULL (null) |
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | <!-- サンプルコード --> <h3>__LINE__</h3> <?php echo '現在の行は、「'.__LINE__.'」 行目です。<br>'; echo '現在の行は、「'.__line__.'」 行目です。'; ?> <h3>__FILE__</h3> <?php echo '現在のファイルパスは、「'.__FILE__.'」 です。<br>'; echo '現在のファイルパスは、「'.__file__.'」 です。'; ?> <h3>定義済み定数</h3> これらの定数は PHP のコアで定義済みの定数です。 PHP, Zend engine, SAPI モジュールも含みます。 <br><br> <? echo 'PHP_VERSION(string):'.PHP_VERSION."<br>\n"; echo 'PHP_MAJOR_VERSION (integer):'.PHP_MAJOR_VERSION ."<br>\n"; echo 'PHP_MINOR_VERSION (integer):'.PHP_MINOR_VERSION ."<br>\n"; echo 'PHP_RELEASE_VERSION (integer):'.PHP_RELEASE_VERSION ."<br>\n"; echo 'PHP_VERSION_ID (integer):'.PHP_VERSION_ID ."<br>\n"; echo 'PHP_EXTRA_VERSION (string):'.PHP_EXTRA_VERSION ."<br>\n"; echo 'PHP_ZTS (integer):'.PHP_ZTS ."<br>\n"; echo 'PHP_DEBUG (integer):'.PHP_DEBUG ."<br>\n"; echo 'PHP_MAXPATHLEN (integer):'.PHP_MAXPATHLEN ."<br>\n"; echo 'PHP_OS (string):'.PHP_OS ."<br>\n"; echo 'PHP_SAPI (string):'.PHP_SAPI ."<br>\n"; echo 'PHP_EOL (string):'.PHP_EOL ."<br>\n"; echo 'PHP_INT_MAX (integer):'.PHP_INT_MAX ."<br>\n"; echo 'PHP_INT_SIZE (integer):'.PHP_INT_SIZE ."<br>\n"; echo 'DEFAULT_INCLUDE_PATH (string):'.DEFAULT_INCLUDE_PATH ."<br>\n"; echo 'PEAR_INSTALL_DIR (string):'.PEAR_INSTALL_DIR ."<br>\n"; echo 'PEAR_EXTENSION_DIR (string):'.PEAR_EXTENSION_DIR ."<br>\n"; echo 'PHP_EXTENSION_DIR (string):'.PHP_EXTENSION_DIR ."<br>\n"; echo 'PHP_PREFIX (string):'.PHP_PREFIX ."<br>\n"; echo 'PHP_BINDIR (string):'.PHP_BINDIR ."<br>\n"; echo 'PHP_BINARY (string):'.PHP_BINARY ."<br>\n"; echo 'PHP_MANDIR (string):'.PHP_MANDIR ."<br>\n"; echo 'PHP_LIBDIR (string):'.PHP_LIBDIR ."<br>\n"; echo 'PHP_DATADIR (string):'.PHP_DATADIR ."<br>\n"; echo 'PHP_SYSCONFDIR (string):'.PHP_SYSCONFDIR ."<br>\n"; echo 'PHP_LOCALSTATEDIR (string):'.PHP_LOCALSTATEDIR ."<br>\n"; echo 'PHP_CONFIG_FILE_PATH (string):'.PHP_CONFIG_FILE_PATH ."<br>\n"; echo 'PHP_CONFIG_FILE_SCAN_DIR (string):'.PHP_CONFIG_FILE_SCAN_DIR ."<br>\n"; echo 'PHP_SHLIB_SUFFIX (string):'.PHP_SHLIB_SUFFIX ."<br>\n"; echo 'E_ERROR (integer):'.E_ERROR ."<br>\n"; echo 'E_WARNING (integer):'.E_WARNING ."<br>\n"; echo 'E_PARSE (integer):'.E_PARSE ."<br>\n"; echo 'E_NOTICE (integer):'.E_NOTICE ."<br>\n"; echo 'E_CORE_ERROR (integer):'.E_CORE_ERROR ."<br>\n"; echo 'E_CORE_WARNING (integer):'.E_CORE_WARNING ."<br>\n"; echo 'E_COMPILE_ERROR (integer):'.E_COMPILE_ERROR ."<br>\n"; echo 'E_COMPILE_WARNING (integer):'.E_COMPILE_WARNING ."<br>\n"; echo 'E_USER_ERROR (integer):'.E_USER_ERROR ."<br>\n"; echo 'E_USER_WARNING (integer):'.E_USER_WARNING ."<br>\n"; echo 'E_USER_NOTICE (integer):'.E_USER_NOTICE ."<br>\n"; echo 'E_DEPRECATED (integer):'.E_DEPRECATED ."<br>\n"; echo 'E_USER_DEPRECATED (integer):'.E_USER_DEPRECATED ."<br>\n"; echo 'E_ALL (integer):'.E_ALL ."<br>\n"; echo 'E_STRICT (integer):'.E_STRICT ."<br>\n"; echo '__COMPILER_HALT_OFFSET__ (integer):'.__COMPILER_HALT_OFFSET__ ."<br>\n"; echo 'TRUE (boolean):'.TRUE ."<br>\n"; echo 'FALSE (boolean):'.FALSE ."<br>\n"; echo 'NULL (boolean):'.NULL ."<br>\n"; ?> <h3>定義済み定数</h3> 以下の定数は、PHP コアに含まれており、常に利用可能です。 <br><br> <? echo 'E_ERROR(integer):'.E_ERROR."<br>\n"; echo 'E_WARNING(integer):'.E_WARNING."<br>\n"; echo 'E_PARSE(integer):'.E_PARSE."<br>\n"; echo 'E_NOTICE(integer):'.E_NOTICE."<br>\n"; echo 'E_CORE_ERROR(integer):'.E_CORE_ERROR."<br>\n"; echo 'E_CORE_WARNING(integer):'.E_CORE_WARNING."<br>\n"; echo 'E_COMPILE_ERROR(integer):'.E_COMPILE_ERROR."<br>\n"; echo 'E_COMPILE_WARNING(integer):'.E_COMPILE_WARNING."<br>\n"; echo 'E_USER_ERROR(integer):'.E_USER_ERROR."<br>\n"; echo 'E_USER_WARNING(integer):'.E_USER_WARNING."<br>\n"; echo 'E_USER_NOTICE(integer):'.E_USER_NOTICE."<br>\n"; echo 'E_STRICT(integer):'.E_STRICT."<br>\n"; echo 'E_RECOVERABLE_ERROR(integer):'.E_RECOVERABLE_ERROR."<br>\n"; echo 'E_DEPRECATED(integer):'.E_DEPRECATED."<br>\n"; echo 'E_USER_DEPRECATED(integer):'.E_USER_DEPRECATED."<br>\n"; echo 'E_ALL(integer):'.E_ALL."<br>\n"; ?> |
タグ(=記事関連ワード)
日付
公開日:2019年8月25日
最終更新日:2019年09月18日
最終更新日:2019年09月18日
このカテゴリの他のページ
この記事へのコメント
トラックバックurl
https://wepicks.net/phpref-magicteisu/trackback/