2009-03-25 7 views
3

すべてのアプリケーション定数で1つのクラスを持ち、すべての定数で1つの場所しか持たないのが良いと聞きました。定数クラスin PHP

私は、このようにそれを行うにしようとしました:

class constants{ 
    define("EH_MAILER",1); 
} 

class constants{ 
     const EH_MAILER =1; 
    } 

しかし、それは動作しません。両方の方法を。 提案がありますか? PHPの現在のバージョンで

+0

あなたはそれを聞いたことがありますか?私はそれが使用される場所と定数を結合するのが最善だと思います。あなたの例では、EHとは何ですか?私は定数がより良い名前に値すると思う。 – strager

+0

もっと手続き型のアプリケーションを使っているなら、include()のインクルードの引数を見ることができましたが、OOで作業している場合、すべての定数を単一のクラスに入れるのは意味がありません。彼らは彼らが(最も)関連しているクラスに属しています。 –

答えて

18

これはそれを行う方法です:

class constants 
{ 
    const EH_MAILER = 1; 
} 

$mailer = constants::EH_MAILER 

http://www.php.net/manual/en/language.oop5.constants.php


は、PHP 5.3以降でそれを行うには良い方法があります。 Namespaces.

consts.php

<?php 
namespace constants 
const EH_MAILER = 1 

... 

other.php

<?php 
include_once(consts.php) 

$mailer = \constants\EH_MAILER 
+0

これは私がそれを行うことを提案する方法です。 –

+0

これは私が探していた解決策です。 もちろん名前空間はありません! Tnx – sanders

+0

\ constants \ EH_MAILER、または少なくとも定数\ EH_MAILERではありませんか? –

0

あなたはどのようなPHPのバージョンを使用していますか?

クラス定数については、pageを参照してください。