如何在没有临时变量的情况下调用刚刚创建的对象的函数?
代码
(new \Foo())->woof();
在php中无效。
什么是对的?
答案 0 :(得分:5)
$obj = new Foo();
$obj->woof();
如果你有PHP 5.4或更高版本,你可以使用new feature:
- 已添加实例化的类成员访问权限,例如的
(new Foo)->bar()
即可。
答案 1 :(得分:0)
你可以这样做,但它不是很干净:
<?php
class Foo
{
public function __construct()
{
}
public function bar()
{
echo 'hello!';
}
}
function Foo()
{
return new Foo();
}
Foo()->bar();
您也可以将其更改为
function newClass($className)
{
return new $className();
}
newClass('Foo')->bar();
但首选静态方法。
答案 2 :(得分:-2)
如果对象具有单例
,它可以工作Foo::getInstance()->woof();
BTW:它不一定是单例,而是静态方法,它返回实例
class Foo {
public static function & getInstance()
{
return new self();
}
}