2017-04-09 3 views
0

내 서비스는 때때로속성이 정의되어 있는지 확인하고 PHP에서 대체품을 제공하는 방법은 무엇입니까?

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

이 경우에 오류

Undefined property: stdClass::$price' 

가 발생합니다

$business->price 

세트 때로는하지 내 코드를 반환합니다.

속성 집합이 맞는지 확인하는 가장 짧은 방법은 무엇입니까? 그렇다면 값을 반환하고 그렇지 않으면 0 또는 NULL과 같은 미리 정의 된 값을 반환 하시겠습니까? 그것은`가 설정되어 있지 않은 경우

+1

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

답변

1

삼항 연산자, 가격은 PHP에서 삼항 연산자를 사용하는 것이 항상 안전 0

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

여전히 '정의되지 않은 속성'메시지가 표시되지 않습니까? – Terminus

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

게시하는 코드에 대한 설명을 추가해야합니다 . 이 게시물을 방문하는 사용자가 어떻게 작동하는지 이해하는 데 도움이 될 것입니다. –

1

될 것입니다. 다음은 여기에 가장 큰 오류 코드가 클래스를 처리하는 방법이며, 이미 언급 @hassan 같은 경우

$retVal = (condition) ? a : b ; 

,

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

그러나, 예입니다. isset 함수를 사용하기 전에 먼저 오류가 발생하지 않도록해야합니다. 나는 당신의 코드가 잘 구축되지 않았을 것이라고 생각한다.

관련 문제