クラス内の定数

広告

クラス内で定数を定義することが出来ます。定数は固定の値である必要があります。構文は下記の通りです。

class クラス名(){
  const 定数名 = 値;
}

PHPで定数を定義するには"define"を使いますが、クラス内部で定義する場合には"const"の後に定数の名前を指定し、値を定義します。変数のように"$"マークは定数名の頭には付きませんので注意して下さい。

またクラス内からこの定数の値を参照するには"self::定数名"のように記述します。

class クラス名(){
  const 定数名 = 値;

  function メソッド名(){
    print(self::定数名);
  }
}

※「self」はカレントクラスを表します。「$this」はオブジェクト毎ですけど「self」はクラスとして考える場合に使います。定数はオブジェクト毎ではなくクラス単位で設定されている値だからです。

サンプルプログラム

では実際に試しておきましょう。下記は前のページのサンプルを定数を使って書き換えたものです。

classtest5.php

<html>
<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サーバに設置しブラウザ経由で見ると下記のように表示されます。

クラス内の定数

PHP入門の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)