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
在PHP 5.3,你可以這樣做:
$baz::waldo();
你能做到的
$foo->bar::garply(); //generates an error
{$foo->bar}::garply(); //this too
相當於而不訴諸
$baz = $foo->bar;
$baz::garply(); // while this works
最好的辦法是進行測試: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();
你會得到這樣的錯誤,與以前的版本:
Parse error: syntax error, unexpected '::'
但這:
$foo = new Bar();
$baz = $foo->apple;
$baz::hello();
將從PHP 5.3.0開始工作:Test demo
爲什麼你不試試看看? –
我認爲OP試過了,並得到一個錯誤。所以現在他想知道如何用一個(直接deref)替換兩行(中間賦值)。 –
@AlmaDoMundo可能,但問題並不清楚。 – ajp15243