2016-09-02 17 views
0

私はコミュニティに新人です。 別のクラスに定数を追加するにはどうすればよいですか?だからここ は定数が含まれている私のクラスである:他のクラスに定数を追加しますか?

class MyClass1 { 
    const CONSTANT_FOO; 
} 

そして、これはクラスMyClass1に新しい定数が追加されたクラスです。

class MyClass2 { 
    //what would I put here? 
} 
+0

MyClass1はMyClass2を拡張しますか、またはその逆ですか? –

+3

なぜ定数を修正しようとしますか?定数は一定です;)。実行時に変更するべきではありません。 – cypherabe

+1

なぜすべてのクラスで同じ定数を定義する必要がありますか?単一の(適切な)クラスに入れておけば、コード内のどこでも 'MyClass1 :: CONSTANT_FOO'というように参照することができます。定数定義に値を設定する必要があることに注意してください –

答えて

0

定数で変更すべきではない何かをしています実行時間。名前の通り、これはCONSTANTであることを意味します。あなたはクラス変数を使って同じことを達成することができます。

  1. MyClass1でクラス変数を宣言します。
  2. MyClass2でMyClass1をインスタンス化します。
  3. 作成したオブジェクトの変数に必要な値を設定します。
  4. このオブジェクトをさらに使用して、実際に割り当てた値を持つことができます。

MyClass1でセッターメソッドとゲッターメソッドを使用するか、PHPでmagic methodsを使用することができます。

1

他のクラスにどのようにConstantを追加しますか?

短い答え:別のクラスに定数を追加することはできません。

ただし、名前のとおり、定数はプログラムの実行中に変更されない値の名前に過ぎません。これはおそらく彼らがすべて公表されており、その可視性を制限することができない理由です。

define()class constantsを使用して作成されたグローバル定数の唯一の違いは、作成とアクセスの構文です。

あなたの質問に対する完全な答えは、ランタイム中に(別のクラスのコードから、またはクラス自体のコードからでも)定数を追加することはできませんが、それを必要としません。 define()は定数であるか、別のクラスではconstと宣言してください。

クラスに定数を追加する唯一の方法は、クラスの定義を変更することです(エディタを使用してください)。

関連する問題