假设您可以(new Object)->method()
在 PHP5.4+ 中执行此操作,我想知道为什么我不能这样做:
<?php
class Item {
public $property = 'test';
}
class Container
{
public function getItem()
{
return new Item();
}
}
echo get_class(($object = (new Container())->getItem())); // returns Item
// this comes up with error
echo ($object = (new Container())->getItem())->property;
为什么最后一行代码触发PHP Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR)
编辑:
看来我需要澄清我的问题,因为我看到的答案与我的问题完全无关。我不是在问如何摆脱语法错误。我的问题是:为什么我不能访问表达式上的属性($object = (new Container())->getItem())
,而get_class()
告诉我这是 Item 的一个实例?