2017-04-09 29 views
0

我的服務有時會返回如何檢查屬性是否定義並在PHP中提供替代?

$business->price 

集,有時不和我的代碼

$feature['properties']['price'] = $business->price; 

拋出錯誤

Undefined property: stdClass::$price' 

在這種情況下。

什麼是最短的方式來檢查屬性設置,如果它是,然後返回它的值,但如果它不是那麼返回一些預定義的值,如0NULL

+1

'$ feature ['properties'] ['price'] =(isset($ business-> price)?$ business-> price:'some_default');' – hassan

回答

1

三元運營商,如果它`不把價格定爲0

$feature['properties']['price'] = $business->price ? $business->price : 0; 
+0

這不會顯示「未定義的屬性」消息嗎? – Terminus

0
if(!empty($business->price) && isset($business->price)){//DoAction} 
+0

您應該添加您發佈的代碼的說明。這將有助於未來的用戶訪問這篇文章,瞭解它的工作原理。 –

1

它始終是安全的PHP使用三元的運營商。下面是一個例子,

$retVal = (condition) ? a : b ; 
在你的情況下,@hassan

已經說過,

$feature['properties']['price'] = (isset($business->price) ? $business->price : 'some_default'); 

但是,這裏最大的錯誤是你的代碼如何處理類。在嘗試使用isset函數之前,首先應該儘量避免首先出現錯誤。我認爲你的代碼可能並不完善。

相關問題