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 中,我不能调用第二个getFoo,我需要将它分配给某个变量。哪个版本的php添加了这个功能?

4

1 回答 1

3

在旧的 php 中,我不能调用第二个 getFoo,我需要将它分配给某个变量。哪个版本的php添加了这个功能?

也许在一个非常旧的 PHP 版本中。它在 PHP 4 中不起作用,因为返回$this->foo将按值返回,而不是按引用返回。回来&$this->foo会工作。从 PHP 5.0 开始(如果我没记错的话),对象总是通过引用返回,所以上面的代码在 PHP >= 5 中应该可以正常工作。

于 2012-05-07T07:22:52.063 回答