2010-10-06 61 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