2017-07-12 57 views
1


我試着檢查一個對象是否爲空。
Groovy中我可以檢查:檢查對象是否爲空(最短路)

System.out.println(object?.object2?.property) 

換句話說

if(object != null){ 
    if(object.object2 != null){ 
     System.out.println(object.object2.property); 
    } 
} 

現在我想在PHP
同我怎麼能寫在最短的方式一樣嗎?如果我試圖得到的對象2,我收到了NPE

感謝您的幫助物業

object->object2->property 

對象2可以爲空

+0

'<?PHP的echo(isset($對象)&& $對象 - >對象2!= NULL)?對象 - > object2- > property:'null or empty'?>這就是全部 –

+0

你在尋找'is_null()'嗎?或者簡單地把它放在'if'' if(object-> object2-> property)' – GrumpyCrouton

+0

我的問題是object2可以爲null,如果object2爲null我得到一個異常,導致我試圖從一個空對象中獲取一個屬性 –

回答

1

你可以這樣做:

if(! $object) 
if($object !== null) 

如果您使用PHP7你也可以做到零COALESCE操作

$object1 ?? $object2 

你的情況

if($object && $object->object2) 
+0

你可以刪除一個相同的if語句'!=='不正確 –

+0

它也是比較類型的保存,因此兩個等於 – Sepultura

1

可以使用isset功能遍及整個對象

if (isset($object->object2->property)) 
    echo 'It exists!'; 
else 
    echo 'It does not exist!'; 
0

嗨,我們有一個函數is_null()或isset()函數

if(isset(object, object->object2)){ 

     echo(object.object2.property); 

} 
+0

這不是PHP代碼 – Jerodev

+0

你是什麼意思,不是PHP? isset()允許多個變量測試 – volkinc

+0

@volkinc'isset'是php,但'System.out.println'是Java。另外,在PHP中,使用' - >'而不是'.'來訪問類的屬性。問題中有 – crazyloonybin