测试变量是组件还是布尔值

Test if a variable is a component or Boolean

我想知道如何测试组件的函数是否返回了组件或布尔值 false。

例如组件的查找方法

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

如果找到酒店,则返回一个组件,否则返回 false。 编写这样的代码通常是可以的,还是我应该以另一种方式写入 cfif

使用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>

或者,IsSimpleValue() 可用于确定变量是否是...一个简单值。也就是说,不是数组、结构、查询或组件。

Returns
True, if value is a string, number, Boolean, or date/time value; False, otherwise.

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

试试这个:

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

不过,如果没有匹配ID的酒店,我建议做findById() return NULL。然后你会使用

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