1

このコードでは:

class Foo {
  private $foo;
  public function Foo($foo) {
    $this->foo = $foo;
  }
  public function getFoo() {
    return $this->foo;
  }
}

$a = new Foo(new Foo('bar'));

echo $a->getFoo()->getFoo();

古いphpでは、2番目getFooに呼び出すことができず、変数に割り当てる必要があります。この機能を追加した PHP のバージョンはどれですか?

4

1 に答える 1

3

古いphpでは、2番目のgetFooを呼び出さないので、変数に割り当てる必要があります。どのバージョンのphpがこの機能を追加しましたか?

たぶん、本当に古いPHPバージョンです。PHP 4では機能しません。これは、$this->foo戻り値が参照ではなく値で返されるためです。しかし、戻る&$this->fooことはうまくいくでしょう。PHP 5.0以降(正しく思い出せば)、オブジェクトは常に参照によって返されるため、上記のコードはPHP>=5で問題なく機能するはずです。

于 2012-05-07T07:22:52.063 に答える