2012-09-10 45 views
0

有什麼辦法可以使用某種safe navigation operator來寫下面的語句嗎?PHP中的安全導航操作符?

echo $data->getMyObject() != null ? $data->getMyObject()->getName() : ''; 

因此,它看起來像這樣:

echo $data->getMyObject()?->getName(); 
+2

PHP不是常規;) – codeling

+1

這是我第一次聽到的時髦,我已經厭倦了這個功能。 :-) – nothrow

+3

爲什麼你會對這個功能感到厭煩?它的一個很棒的功能。 – beku8

回答

2

沒有沒有。

解決這個問題的絕對最好的方法是設計你的對象的方式,他們總是返回一個已知的,好的,特定類型的定義值。

對於有些情況下,這是絕對不可能的,你必須做的:

$foo = $data->getMyObject(); 
if ($foo) { 
    echo $foo->getName(); 
} 

也許

echo ($foo = $data->getMyObject()) ? $foo->getName() : null; 
+0

好的。至少你的第二個建議比我的短一點。 – Dennis