[PHP-users 29282] Re: クラス内での定数の定義方法について

Shindo shindo @ atsystem.jp
2006年 5月 24日 (水) 09:15:11 JST


荒木 様

はじめまして進藤です。

PHPはC++やJAVAなどと比べると型などの扱いがゆるいので
完全にご希望の処理を満たすのは難しいかと思います。

私は、ご希望に近い処理をしたい場合は

クラス変数を定義してコンストラクラタで連結処理をするか
defineで定数定義するかで済ませています。

この場合は、大文字変数は定数と見做すお約束でコーディング
class Constants{
  var CONST_AAA = "Hello!";
  var CONST_BBB = Constants::CONST_AAA." World";

  function Constants() {
  	$this->CONST_AAA = "Hello!";
  	$this->CONST_BBB = Constants::CONST_AAA." World";
  }
・・・
}

この場合は、クラス外からも見えてしまいますが
class Constants{
  define("CONST_AAA", "Hello!");
  define("CONST_BBB", CONST_AAA." World");

・・・
}


>初めまして。
>
>荒木と申します。
>
>最近PHPを始めたのですが、
>クラス内で、どのように定数の定義をするのが良いのか
>分からなかったためポストさせていただきました。
>
>PHP5での実装においてクラス内で定数を定義したいと考えています。
>しかしここでちょっと問題が。
>
>実はクラスの定数において、定数の連結を行いたいのですが、
>それが出来ないんです。
>
>例)
>class Constants{
>  const CONST_AAA = "Hello!";
>  const CONST_BBB = Constants::CONST_AAA." World";
>
>・・・
>}
>
>しょうがないので、メンバ変数にfinalをつけて、
>定数扱いにしようかと思ったのですが、
>PHPではメンバ変数にfinal付けられないことに気付きました。
>
>やりたいことは
>・クラス定数を使いたい
>・ファイルへの外出しでの定数定義はしたくない。
>・定数をベースに連結していきたい。(例えばパスなんか)
>・定数なので途中で値が変わりうる可能性を残しておきたくない。
>です。
>
>こういった場合、どのように実装すればよいのでしょうか。
>
>初心者質問かもしれませんが、よろしくご教授願います。m(__)m
>
>_______________________________________________
>PHP-users mailing list  PHP-users @ php.gr.jp
>http://ns1.php.gr.jp/mailman/listinfo/php-users
>PHP初心者のためのページ - 質問する前にはこちらをお読みください
>http://www.php.gr.jp/php/novice.php3


_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
 進藤寿則@アットシステム   _/_/
 e-mail shindo@atsystem.jp     _/



PHP-users メーリングリストの案内