2016-10-07 7 views
0

コンポーネントの関数がコンポーネントまたはブールfalseを返すかどうかをテストする方法を理解しようとしています。ホテルでは、コンポーネントが返され発見された場合変数がコンポーネントかブールかどうかをテストします。

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

のような例えば

は、コンポーネントのfindメソッド、そうでない場合はfalse。 このようなコードを書いても大丈夫ですか?cfif別の方法で書かなければなりませんか?

+0

空のクエリを返してレコード数を確認してみませんか? –

+0

findById()は何を返しますか? –

+1

あなたはおそらく考え直すべきです。私はブール値ORを返すメソッドを望んでいないと思います。それはより予測可能でなければなりません。 「findByID()」を使用してtrueまたはfalseを送信し、別のgetHotelObj()(または何でも)を作成してBeanまたはコンポーネントを返すことができます。あなたのロジックコードは、常にあなたの様々なコードブロックIMOの読み込み可能/理解可能なはずです。 –

答えて

1

以下のように、IsSimpleValue()変数がある場合...単純な値を決定するために使用することができます。つまり、ではなく、配列、構造体、クエリ、またはコンポーネントです。真

戻り
、値が文字列、数値、ブール、または日付/時刻の値である場合には、 Falseです。

<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> 
関連する問題