4

PHPで変数が上書きされるのを防ぐことは可能ですか?私はいくつかの予約変数を持つシステムを作成していますが、特定の時点以降にそれらを他のものに置き換えたくありません。可能です?そうでない場合、これに近いものにアプローチするにはどうすればよいですか?

これらの変数のいくつかはインスタンス化されたクラスであるため、定数として定義することはできません。

4

5 に答える 5

7

この質問を見てください。また、 PHPマニュアルの定数に関する情報も役立つ場合があります。

于 2012-07-26T19:00:22.110 に答える
5

はい、それらは定数と呼ばれます。

それらを使用できない場合は、最新のPHPバージョンを実行していると仮定して、名前空間を使用できます。名前空間を使用すると、異なる名前空間に同じ名前の2つの変数を含めることができます。衝突しないように。

于 2012-07-26T19:00:41.213 に答える
3

この場合にできる最善のこと(私が知っていること)は、それらをクラス内のプライベート変数にすることです。次に、ゲッターとセッターを使用して値または構成を割り当てる必要があります。そうすれば、他の誰かのコードがあなたのコードと衝突する可能性が低くなります。

于 2012-07-26T19:00:25.853 に答える
0

利用可能なコードがまったくないため、状況で最も簡単な方法を見つけることは不可能ですが、より良いオプションの1つはおそらく次のとおりです。

  1. それらをプライベートメンバー変数としてクラスに非表示にします。
  2. ゲッターを通してそれらを公開します。

必要に応じて、静的にします

于 2012-07-26T19:00:39.637 に答える
0

たぶん、凍結状態のようなものを実装することができ、クラスが凍結されている場合、変更することはできません:

class Test
{
    private $variable;
    private $frozen = false;

    public function freeze() {
        $this->frozen = true;
    }

    public function setVariable($value) {
        if ($this->frozen)
            throw new Exception("...");

        $this->variable = $value;
    }
}
于 2012-07-26T19:10:57.720 に答える