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 に答える