クラス定数
定数は"define(定数名,値)"でグローバル定数として定義される。
いっぽう、クラス定数はクラス内に定義され、"const 定数名 = 値"で定義し、クラス内からの参照は"self::定数名"で呼ぶことが出来る。
クラス定数はインスタンスの必要が無く、クラス外から直接呼ぶことが出来る。
また、その性質上publicと同じ扱いとなるので、アクセス修飾子は付けられなく、define()と同じように"$"が接頭辞につきません。
php
<?php class hoge{ //クラス定数の宣言 "const 定数名" const tax = 0.08; private $price = 0; public function setPrice($price){ $this->price = $price; } public function getSalePrice(){ //クラス定数を「クラス内」で参照 "self::クラス定数名" $tax = $this->price * self::tax; $price = $this->price + $tax; return $price; } }//end_class "hoge" //クラス定数を「クラス外」から参照 "クラス名::クラス定数名" var_dump(hoge::tax); $prd = new hoge; $prd->setPrice(410); $price = $prd->getSalePrice(); var_dump($price); ?>
出力結果
float(0.08) float(442.8)