2016-12-12 19 views
0

比方說,我有一個對象是這樣的:如何在PHP中檢查是否存在多級對象參數?

$user = (object) [ 
    'username' => 'foo', 
    'post' => (object) [ 
     'title' => 'bar' 
    ], 

]; 

現在我想獲得用戶的帖子標題的價值,但我要確保這兩個userpoststitle不爲空或未定義。現在我正在檢查如下:

if(isset($user) && $user->post && $user->post->title) 

有沒有更優雅的方式?

我不確定我是否在標題中描述了它。如果你知道更好的措辭,請糾正。

+0

你使用的框架? –

回答

0

isset()接受多個參數,並會返回false,除非所有的設置(而不是null),所以你可以這樣做:

isset($user, $user->post, $user->post->title) 
1

檢查一切是多餘的。所有你需要檢查的是最低級別的屬性,這是$title

if (isset($user->post->title)) { 
    // do something 
}