2011-12-20 7 views
2

C++のように、コンストラクタでクラス定数を初期化することは可能ですか?それはのように見えるだろうC++と同様にPHPのコンストラクタでクラス定数を初期化する

class Abc 
{ 
    const WIDTH; 

    public __constructor($width):WIDTH($width) //WIDTH gets assigned here and is immutable 
    { 
     //I know syntax may not be ok but is anything similar possible in PHP? 
    } 

} 

答えて

5

いいえ、これはPHPでは不可能です。定数を定義するときは、定数の値を定義する必要があります。定数の値は定数式でなければなりません。

推奨しない:もちろんrunkitがインストールされている場合、あなたはrunkit_constant_add()を使用することができます。

public function __construct($width) 
{ 
    runkit_constant_add(__CLASS__ . '::WIDTH', $width); 
} 
関連する問題