Bas*_*nck 8 php constructor class function call
正如您在标题中看到的那样,我的编程背景是Java.在Java中你可以做这样的事情
new Object().callSomeMethod();
Run Code Online (Sandbox Code Playgroud)
如果您只需要一次这个对象,则不将创建的Object分配给变量,非常有用且清晰的编码.
现在在PHP中我尝试做同样的事情
new Object()->callSomeMethod();
Run Code Online (Sandbox Code Playgroud)
但在这里我得到一个'解析错误:语法错误,意外' - >'(T_OBJECT_OPERATOR)'.
有没有办法在PHP中执行此操作?
Kit*_*ita 16
(new Object())->callSomeMethod();
Run Code Online (Sandbox Code Playgroud)
将在PHP 5.4+中运行
编辑
这是PHP 5.4上添加的新功能:
已添加实例化的类成员访问权限,例如
(new Foo)->bar().
EDIT2
在PHP功能RFC提出了两套语法(以&不带括号)的,两者都在RFC实现的,但只有一个已经发货.我找不到解释决定的链接.
我们来看看RFC中的无括号语法示例:
new foo->bar() 应该读作 (new foo)->bar()new $foo()->bar 应该读作 (new $foo())->barnew $bar->y()->x 应该读作 (new ($bar->y)())->x我认为无法发布无括号语法,因为它提出的解析优先级不是很直观(很难用眼睛看),如第3个例子所示.
| 归档时间: |
|
| 查看次数: |
2533 次 |
| 最近记录: |