$ foo-> bar :: garply()的正确PHP语法是什么?

In PHP 5.3 you can do:

$baz::waldo();

Can you do the equivalent of

 $foo->bar::garply();   //generates an error
 {$foo->bar}::garply();    //this too

without resorting to

$baz = $foo->bar;
$baz::garply();   // while this works

Best way to know is to test it : Test demo

Giving these classes :

class Foo
{
    public static function hello()
    {
        echo "Hello !";
    }
}
class Bar
{
    public $apple = null;

    public function __construct()
    {
        $this->apple = new Foo();
    }
}

This will only work from PHP 7.0.0 :

$foo = new Bar();
$foo->apple::hello();

You will get this kind of errors with the previous versions :

Parse error: syntax error, unexpected '::'

But this :

$foo = new Bar();
$baz = $foo->apple;
$baz::hello();

will work from PHP 5.3.0 : Test demo