在此代码中:
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添加了此功能?
答案 0 :(得分:3)
在旧的PHP中,我不会调用第二个getFoo,我需要将它分配给某个变量。哪个版本的php添加了此功能?
可能在真正的旧PHP版本中。它在PHP 4中不起作用,因为返回$this->foo
将按值返回,而不是通过引用返回。返回&$this->foo
会有效。从PHP 5.0开始(如果我没记错的话),对象总是通过引用返回,因此上面的代码在PHP> = 5中应该没有问题。