2010-10-06 59 views
2

如果静态方法返回一个对象..我可以在一行中获取其中一个对象的属性吗? 像这样的事情,但在单行:PHP返回值

$obj = Parser::GetFirstItem(); 
$strTitle = $obj->Title; 

回答

3

肯定。试试吧:

$strTitle = Parser::GetFirstItem()->Title; 

不完全确定这是什么时候引入的。 5? 5.1? 5.2?将不得不检查。

更新:似乎从一开始就是PHP 5功能。

+0

这将是$ strTitle = ...不是$ obj。 ;) – Spudley 2010-10-06 12:03:45

+0

@Spudley当然,欢呼声。 – 2010-10-06 12:07:22

0

您的GetFirstItem方法应返回一个对象。只有虚拟(非静态方法)可以做到这一点:

return $this; 
+0

'$ this'在静态环境下不起作用 – 2010-10-06 12:30:49

+0

是的。阅读我的更改。 – pltvs 2010-10-06 12:32:19

+0

在静态函数中使用'return self;'返回'E_NOTICE','self'是一个未定义的常量,假设你的意思是'self',并返回一个字符串。 (注意:PHP 5.3.2)。如果你想要一个具有静态函数的类的对象,那么你应该使用'return new self();' – Aether 2010-10-06 12:54:52