2012-05-07 10 views
1

によって返されたメソッドの呼び出しを追加:古いPHPでPHPのバージョンこのコードでは機能

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(); 

を私はいくつかの変数に代入する必要があります第二getFooを呼び出すcoudn'tます。どのバージョンのphpがこの機能を追加しましたか?

+0

FWIW、PHP 5.4では、 'echo(new Foo(new Foo() 'bar')) - > getFoo() - > getFoo(); ' –

+0

@CoryCarsonニース – jcubic

答えて

3

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

実際には古いPHPバージョンです。 $this->fooを返すのは、参考ではなく値で返されるため、PHP 4では動作しません。返信&$this->fooでもうまくいくはずです。 PHP 5.0以降では、オブジェクトは常に参照によって返されるので、上記のコードはPHP> = 5で問題なく動作するはずです。

関連する問題