定数を定義するには2通りのやり方がある。
define('定数名', 値);
const 定数名 = 値;
定数は変数と異なり、名前の前に$
を付けない。また、慣習的に名前は大文字にする。
define文の値には定数を使用することができるが、const文の値には定数を使用することができない。
define('WORK_DIR', '/tmp');
define('RESULT_FILE', WORK_DIR.'/result.ini');
クラスのメンバとして定義したオブジェクト定数の参照は、クラス名::定数名
で参照する。
定数 | 説明 |
---|---|
__CLASS__ | クラス名 |
__DIR__ | ファイルが存在するディレクトリ |
__FILE__ | ファイルのフルパス名 |
__FUNCTION__ | 関数名 |
__LINE__ | ファイル上の現在の行番号 |
__METHOD__ | クラスのメソッド名 |
__TRAIT__ | トレイト名 |
__NAMESPACE__ | 現在の名前空間 |
DIRECTORY_SEPARATOR | ディレクトリの区切り文字(Linuxは「/ 」、Microsoft Windowsは「\ 」) |
PATH_SEPARATOR | パス区切り文字(Unixは「: 」、Windowsは「; 」) |
PHP_BINDIR | バイナリのインストール先 |
PHP_EOL | 行末文字(改行) |
PHP_VERSION | 現在のPHPのバージョン |
クラス内定数とは、クラス定義の内側で作用する定数であり、次の書式で定義する。
const NAME = value
クラス内定数はself::NAME
で参照することができる。クラス内定数の使用例を示す。
class Const {
const MIN_VALUE = 1;
public function getMinValue() {
return self::MIN_VALUE;
}
}