假设你可以(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;
Run Code Online (Sandbox Code Playgroud)
为什么最后一行代码会触发 PHP Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR)
编辑:
看起来我需要澄清我的问题,因为我看到答案与我的问题完全无关.我不是在问如何摆脱语法错误.我的问题是:为什么我不能访问表达式上的属性($object = (new Container())->getItem()),同时get_class()告诉我这是Item的一个实例?
你只能在PHP 5.4中取消引用函数返回值(我相信你可以取消引用新创建的数组['x','y','z'][$index])
由于赋值不是函数,因此您无法取消引用它.
| 归档时间: |
|
| 查看次数: |
133 次 |
| 最近记录: |