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
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