2016-10-07 2 views
0

구성 요소의 기능이 구성 요소 또는 부울 false를 반환했는지 어떻게 테스트 할 수 있는지 파악하려고합니다. 호텔은 다음 구성 요소가 반환됩니다 발견되면변수가 구성 요소 또는 부울인지 테스트합니다.

<cfset hotel = oHotel.findById(1200) /> 
<cfif hotel > 
... 
</cfif> 

같은 예를 들어

는 구성 요소의 찾기 방법, 그렇지 않으면 false입니다. 일반적으로 이러한 코드를 작성하는 것이 좋습니까? 아니면 다른 방법으로 cfif에 써야합니까?

+0

왜 빈 쿼리를 반환하고 레코드 수를 확인하지 않습니까? –

+0

findById()는 무엇을 반환합니까? –

+1

당신은 아마 재고해야합니다. 내가 부울 또는 객체를 반환하는 메서드를 원하지 않는다고 생각합니다. 더 예측 가능해야합니다. "findByID()"를 사용하여 true 또는 false를 보내고 별도의 getHotelObj() (또는 무엇이든)를 만들어 콩 또는 구성 요소를 다시 가져옵니다. 귀하의 로직 코드는 항상 귀하의 다양한 코드 블록 IMO에서 가장 판독 가능/이해 가능해야합니다. –

답변

1

다음은 IsSimpleValue() 변수 인 경우 ... 단순 값을 결정하는데 사용될 수있다. 즉 이 아니며 배열, 구조체, 쿼리 또는 구성 요소가이 아닙니다.

반환
진정한 가치 인 경우 문자열, 숫자, 부울 또는 날짜/시간 값; 그렇지 않으면 거짓입니다.

<cfset hotel = oHotel.findById(1200) /> 
<cfif IsSimpleValue(hotel)> 
    <!--- it is a simple value, i.e., NOT a component ---> 
</cfif> 
4

사용 IsValid() 기능 대안

<cfset hotel = oHotel.findById(1200) /> 

<cfif IsValid("component",hotel)> //Hotel found 
    <!--- Code to perform if it is Component ---> 
<cfelse> 
    <!--- Code to perform if it is not a Component ---> 
</cfif> 
2

이 시도 :

<cfif isBoolean(hotel)> 
    .... 
</cfif> 

그러나, 나는 일치하는 ID와 아무 호텔이없는 경우 findById() 반환 NULL을 제안했다. 그런 다음 사용 하시겠습니까

<cfif !isNull(hotel)> 
    .... 
</cfif>