在 PHP 5.3 中,您可以执行以下操作:
$baz::waldo();
你能做相当于
$foo->bar::garply(); //generates an error
{$foo->bar}::garply(); //this too
不诉诸于
$baz = $foo->bar;
$baz::garply(); // while this works
在 PHP 5.3 中,您可以执行以下操作:
$baz::waldo();
你能做相当于
$foo->bar::garply(); //generates an error
{$foo->bar}::garply(); //this too
不诉诸于
$baz = $foo->bar;
$baz::garply(); // while this works
最好的方法是测试它:测试演示
提供这些课程:
class Foo
{
public static function hello()
{
echo "Hello !";
}
}
class Bar
{
public $apple = null;
public function __construct()
{
$this->apple = new Foo();
}
}
这仅适用于 PHP 7.0.0 :
$foo = new Bar();
$foo->apple::hello();
以前的版本会出现这种错误:
解析错误:语法错误,意外的 '::'
但是这个 :
$foo = new Bar();
$baz = $foo->apple;
$baz::hello();
将从 PHP 5.3.0 开始工作:测试演示