PHPの全目次
クラスの定義の目次
クラス内の定数
クラス内で定数を定義することが出来ます。定数は固定の値である必要があります。構文は下記の通りです。
class クラス名(){ const 定数名 = 値;}
PHPで定数を定義するには”define”を使いますが、クラス内部で定義する場合には”const”の後に定数の名前を指定し、値を定義します。変数のように”$”マークは定数名の頭には付きませんので注意して下さい。
またクラス内からこの定数の値を参照するには”self::定数名”のように記述します。
class クラス名(){ const 定数名 = 値;
function メソッド名(){ print(self::定数名); }}
※「self」はカレントクラスを表します。「$this」はオブジェクト毎ですけど「self」はクラスとして考える場合に使います。定数はオブジェクト毎ではなくクラス単位で設定されている値だからです。
サンプルコード
▼Example-class5-1.php
<!DOCTYPE html><html lang=”ja”><head><title>PHP TEST</title></head><body>
<?php
$tv = new Television();
$tv->setChannel(20);print(‘現在のチャンネルは’.$tv->getChannel().'<br>’);
$tv->setChannel(10);print(‘現在のチャンネルは’.$tv->getChannel().'<br>’);
class Television{ private $channelNo = 8;
const MAX_CHANNEL = 12; const MIX_CHANNEL = 1; const ERROR_MSG = ‘チャンネルは1から12の間で設定して下さい<br>’;
function setChannel($channel){ if (($channel >= self::MIX_CHANNEL) and ($channel <= self::MAX_CHANNEL)){
$this->channelNo = $channel; }else{ print(self::ERROR_MSG); } }
function getChannel(){ return $this->channelNo; }}
?></body></html>
上記のファイルをwwwサーバーのドキュメントルート以下に設置しブラウザからアクセスすると次のように表示されます。