PHPには$_POSTや$_GET、$_SERVERなどの『定義済み変数』のほかに、『定義済み定数』というものがあります。
これらを活用すればより効率的にプログラムを書くことができるでしょう。

今回は、PHPで定義されている便利な定数を見ていきたいと思います。
$_POSTや$_GET等の『定義済みの変数』はみなさんよく使われるので、今回は置いておきます。

一覧はマニュアルで見ることが出来ますので復習の意味でも一度確認してみて下 さい。
http://www.phppro.jp/phpmanual/php/language.variables.predefined.html

そして、『定義済み定数』一覧はこちらです。
http://www.phppro.jp/phpmanual/php/reserved.constants.html

そうです。結構たくさんあります。

いくつか簡単にご紹介すると、

  • PHP_VERSION
    PHPのバージョンを返す。


  • PHP_OS
    OSの種類を返す。


  • DIRECTORY_SEPARATOR
    ディレクトリを区切る文字を返す。
    Windows系では『\』、Unix系では『/』を返す。


  • PATH_SEPARATOR
    set_include_path関数などでパスを指定するときの区切り文字を返す。
    Windows系では『;』、Unix系では『:』を返す。

現在定義されている全ての定数の名前と値を確認したいときには以下のように簡単に調べることができます。

<?php
print '<pre>';
print_r(get_defined_constants());//自分で定義した定数も表示します。
print '</pre>';
?>

備考:定義済み変数は『get_defined_vars』、定義済み関数は 『

また、定数には、使われ方によって変化する自動的に定義される定数(マジカル定数)が5つあります。
http://www.phppro.jp/phpmanual/php/language.constants.predefined.html

  • __LINE__
    ファイル上の現在の行番号


  • __FILE__
    ファイルのフルパスとファイル名。インクルードされるファイルの
    中で使用された場合、インクルードされるファイルの名前が返されます。


  • __FUNCTION__
    関数名


  • __CLASS__
    クラス名


  • __METHOD__
    クラスのメソッド名

使用例などは、SmartyやSymfonyなどの適当なライブラリやフレームワークのソースコードをのぞいてみるのが一番よいでしょう。定数の定義の仕方や、定義済み定数をうまく活用しているのが分かると思います。

まだ定義済み定数を使用されていない方はぜひ使ってみてください。これらの定数を活用することで、スクリプトをより効率的に書くことができるで しょう。



(アシアル 中川善樹)


この記事は、アシアルが運営するPHP開発者のためのポータル&コミュニティサイト「PHPプロ!」で毎週配信しているPHP・TIPSメーリングリストを再録したものです。
同サイトでは、他にもPHP最新ニュースや、困ったときのQ&A掲示板、初心者向けのPHP講座など、PHP開発者をサポートする情報を掲載しています。