1

PHPでオブジェクトを返すと、そのオブジェクトの新しいインスタンスが作成されますか?

オブジェクトを格納するクラスがあります。そのクラスは、指定されたオブジェクトを返すメソッドです。例;

class Simple {

     private $obj = array();

public function loadObj($name) {

    $this->obj[$name] = new $name();
}

public function getObj($key) {

    if(isset($this->obj[$key])) {
        return $this->obj[$key];
    }
}
}

次に、私のコードで次のようなことができます。

$a = new Simple();
$a->addObj('cat');
$cat1 = $a->getObj('cat');
$cat2 = $a->getObj('cat');

これは毎回新しい猫をインスタンス化しますか?

猫が色と方法の変数を持っていたsetColorとしましょう。getColor私が色を変更し$cat1てフェッチした場合、$cat2それらは同じでしょうか?

私はそれをテストしますが、私は家にいません。

4

3 に答える 3

1

$a->いいえ、1 つのオブジェクトに対して2 回だけ関数を呼び出しているため、どちらの場合も同じ値のみが返されます 。複数回呼び出さない限りaddObj、そこにさらにオブジェクトが生成されることはありません。またaddObj、クラスで定義されていません。それはloadObj

于 2013-03-13T05:30:40.887 に答える