0

在 PHP 5.3 中,您可以执行以下操作:

$baz::waldo();

你能做相当于

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

不诉诸于

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

1 回答 1

1

最好的方法是测试它:测试演示

提供这些课程:

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 开始工作:测试演示

于 2013-10-02T13:10:37.657 回答