2017-04-09 56 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函数之前,首先应该尽量避免首先出现错误。我认为你的代码可能并不完善。

相关问题