刚刚创建的对象的调用函数

时间:2010-06-19 12:31:42

标签: php

如何在没有临时变量的情况下调用刚刚创建的对象的函数?

代码

(new \Foo())->woof();

在php中无效。

什么是对的?

3 个答案:

答案 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();
      }
}