cfif

説明

CFML で簡単な条件ステートメントや複合条件ステートメントを作成できます。式、変数、関数の戻り値、または文字列をテストします。オプションで cfelse タグと cfelseif タグを組み合わせて使用します。

シンタックス

<cfif expression> 
    HTML and CFML tags    <cfelseif expression> 
    HTML and CFML tags 
    <cfelse> 
    HTML and CFML tags 
</cfif>

使用方法

cfif タグ内の式の値が true の場合、それ以降のすべてのコードは、cfelseif タグまたは cfelse タグに到達するまで実行され、その後は cfif 終了タグまでスキップされます。false の場合、cfif タグの直後のコードは実行されず、cfelseif タグまたは cfelse タグが存在すればそのコードが実行され、あるいは、cfif 終了タグの後のコードが実行されます。

ブール値を返す関数の戻り値をテストするときには、true 条件を明示的に定義する必要はありません。この例では、IsArray 関数を使用しています。

<cfif IsArray(myarray)>

関数が成功した場合、IsArray は yes と評価されます。この文字列は、ブール値の true に相当します。true の条件を次のように明示的に定義する方法よりも、この方法をお勧めします。

<cfif IsArray(myarray) IS True>

このタグには終了タグが必要です。

この例では、変数をシャープ記号で囲んでいます。これは必須ではありません。

<!--- This example shows the interaction of cfif, cfelse, and cfelseif. ---> 
<!----- First, perform a query to get some data. ----->  
<cfquery name="getCenters" datasource="cfdocexamples">  
    SELECT Center_ID, Name, Address1, Address2, City, State, Country, PostalCode,  
        Phone, Contact 
    FROM Centers  
    ORDER by City, State, Name  
</cfquery>  
<p>CFIF gives us the ability to perform conditional logic based on a condition  
    or set of conditions.</p>  
<p>For example, we can output the list of Centers from the snippets datasource  
    by group and only display them <b>IF</b> City = San Diego.</p>  
<hr>  
<!---- Use CFIF to test a condition when outputting a query. ----->  
<p>The following centers are in San Diego:</p>  
<cfoutput query="getCenters">  
        <cfif Trim(City) is "San Diego">  
            <br><b>Name/Address:</b>#Name#, #Address1#, #City#, #State# 
            <br><b>Contact:</b> #Contact# 
            <br>  
        </cfif>  
</cfoutput>  
<hr>  
<p>If we would like more than one condition to be the case, we can ask for a list of the 
centers in San Diego <b>OR</b> Santa Ana. If the center does not follow this condition, we 
can use CFELSE to show only the names and cities of the other centers.</p> 
<p>Notice how a nested CFIF is used to specify the location of the  
    featured site (Santa Ana or San Diego).</p> 
<!----- Use CFIF to specify a conditional choice for multiple options;  
    also note the nested CFIF. --->  
<p>Complete information is shown for centers in San Diego or Santa Ana.  
    All other centers are listed in italic:</p>  
<cfoutput query="getCenters">  
    <cfif Trim(City) is "San Diego" OR Trim(City) is "Santa Ana">  
        <h4>Featured Center in  
            <cfif Trim(City) is "San Diego">  
                San Diego  
            <cfelse>  
                Santa Ana  
            </cfif>  
            </h4> <b>Name/Address:</b>#Name#, #Address1#, #City#, #State# 
            <br><b>Contact:</b> #Contact#<br>  
    <cfelse>  
        <br><i>#Name#, #City#</i>  
    </cfif>  
</cfoutput>  
<hr>  
<p>Finally, we can use CFELSEIF to cycle through a number of conditions and  
produce varying output. Note that you can use CFCASE and CFSWITCH for a more 
elegant representation of this behavior.  
<!--- Use CFIF in conjunction with CFELSEIF to specify more than one  
    branch in a conditional situation. --->  
<cfoutput query="getCenters">  
    <cfif Trim(City) is "San Diego" OR Trim(City) is "Santa Ana">  
        <br><i>#Name#, #City#</i> (this one is in  
                <cfif Trim(City) is "San Diego">San Diego 
                <cfelse>Santa Ana 
                </cfif>)  
            <cfelseif Trim(City) is "San Francisco">  
                <br><i>#Name#, #City#</i> (this one is in San Francisco)  
            <cfelseif Trim(City) is "Suisun">  
                <br><i>#Name#, #City#</i> (this one is in Suisun)  
            <cfelse> <br><i>#Name#</i>  
                <b>Not in a city we track</b>  
            </cfif>  
</cfoutput>