3

Blavariable を含むクラスがあるとします$x

$xこの変数が最初に作成されたオブジェクトによって設定されたら、他のオブジェクトの値を保持したいと思います。

例えば:

$object1 = new bla(.....);
$object1->setx();
$object1->getx();

$object2 = new bla(.....);
$object2->getx();

だから私は欲しい:

 $object2->getx()

...私がすでに設定した値を私に与えるためにobject1

クラス内でグローバル変数として使用しようとし$xましたが、それは不可能であることがわかりました。クラス外で使用して、クラス内でこの変数にアクセスできますか?

他の方法は何ですか?

4

5 に答える 5

0
class Bla {
    static private $x = "X!";
}

初期化時に何をすべきかがわかっている場合xは、上記を使用してください。が計算される場合xは、一度だけ設定されるようにすることができます。

class Bla {
    static private $x = null;
    public function getX(){
        if($this->x === null){
            $this->x = theLogicToGetX();
        }
        return $this->x;
    }
}

最初の呼び出しのみが設定されx、後続の呼び出しはその値を使用します。

于 2013-07-05T10:50:57.807 に答える