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

时间:2013-10-02 12:59:18

标签: php

在PHP 5.3中,你可以这样做:

$baz::waldo();

你可以做相同的

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

不诉诸

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

1 个答案:

答案 0 :(得分:1)

最好的方法是测试它: Test demo

提供这些课程:

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中运行: Test demo