私はコミュニティに新人です。 別のクラスに定数を追加するにはどうすればよいですか?だからここ は定数が含まれている私のクラスである:他のクラスに定数を追加しますか?
class MyClass1 {
const CONSTANT_FOO;
}
そして、これはクラスMyClass1
に新しい定数が追加されたクラスです。
class MyClass2 {
//what would I put here?
}
私はコミュニティに新人です。 別のクラスに定数を追加するにはどうすればよいですか?だからここ は定数が含まれている私のクラスである:他のクラスに定数を追加しますか?
class MyClass1 {
const CONSTANT_FOO;
}
そして、これはクラスMyClass1
に新しい定数が追加されたクラスです。
class MyClass2 {
//what would I put here?
}
定数で変更すべきではない何かをしています実行時間。名前の通り、これはCONSTANT
であることを意味します。あなたはクラス変数を使って同じことを達成することができます。
MyClass1でセッターメソッドとゲッターメソッドを使用するか、PHPでmagic methodsを使用することができます。
他のクラスにどのようにConstantを追加しますか?
短い答え:別のクラスに定数を追加することはできません。
ただし、名前のとおり、定数はプログラムの実行中に変更されない値の名前に過ぎません。これはおそらく彼らがすべて公表されており、その可視性を制限することができない理由です。
define()
とclass constantsを使用して作成されたグローバル定数の唯一の違いは、作成とアクセスの構文です。
あなたの質問に対する完全な答えは、ランタイム中に(別のクラスのコードから、またはクラス自体のコードからでも)定数を追加することはできませんが、それを必要としません。 define()
は定数であるか、別のクラスではconst
と宣言してください。
クラスに定数を追加する唯一の方法は、クラスの定義を変更することです(エディタを使用してください)。
MyClass1はMyClass2を拡張しますか、またはその逆ですか? –
なぜ定数を修正しようとしますか?定数は一定です;)。実行時に変更するべきではありません。 – cypherabe
なぜすべてのクラスで同じ定数を定義する必要がありますか?単一の(適切な)クラスに入れておけば、コード内のどこでも 'MyClass1 :: CONSTANT_FOO'というように参照することができます。定数定義に値を設定する必要があることに注意してください –