if文の入れ子(ネスト)

if ~ elseif ~ else ~は、入れ子(ネスト)にして使うことができる。

使い方

if文、elseif文、else文、それぞれの中に、if ~ elseif ~ else ~を入れるだけ。

波括弧で括る方法

if ( 条件式A ) {
    条件式Aが「TRUE」のときに行う処理
    if ( 条件式C ) {
        条件式Aが「TRUE」で、条件式Cが「TRUE」のときに行う処理
    } elseif ( 条件式D ) {
        条件式Aが「TRUE」で、条件式Cが「FALSE」、条件式Dが「TRUE」のときに行う処理
    } else {
        条件式Aが「TRUE」で、条件式Cと条件式Dが「FALSE」のときに行う処理
    }
} elseif ( 条件式B ) {
    条件式Aが「FALSE」で、条件式Bが「TRUE」のときに行う処理
} else {
    条件式Aと条件式Bが「FALSE」のときに行う処理
    if ( 条件式E ) {
        条件式Aと条件式Bが「FALSE」で、条件式Eが「TRUE」のときに行う処理
    } elseif ( 条件式F ) {
        条件式Aと条件式Bが「FALSE」で、条件式Eが「FALSE」、条件式Fが「TRUE」のときに行う処理
    } else {
        条件式Aと条件式Bが「FALSE」で、条件式Eと条件式Fが「FALSE」のときに行う処理
    }
}

コロンとendif;を使う方法

コロンとendif;については、endif(波括弧をコロンとendif;に変更)のページへ。

PHPブロックのみ

if ( 条件式A ):
    条件式Aが「TRUE」のときに行う処理
    if ( 条件式C ):
        条件式Aが「TRUE」で、条件式Cが「TRUE」のときに行う処理
    elseif ( 条件式D ):
        条件式Aが「TRUE」で、条件式Cが「FALSE」、条件式Dが「TRUE」のときに行う処理
    else:
        条件式Aが「TRUE」で、条件式Cと条件式Dが「FALSE」のときに行う処理
    endif;
elseif ( 条件式B ):
    条件式Aが「FALSE」で、条件式Bが「TRUE」のときに行う処理
else:
    条件式Aと条件式Bが「FALSE」のときに行う処理
    if ( 条件式E ):
        条件式Aと条件式Bが「FALSE」で、条件式Eが「TRUE」のときに行う処理
    elseif ( 条件式F ):
        条件式Aと条件式Bが「FALSE」で、条件式Eが「FALSE」、条件式Fが「TRUE」のときに行う処理
    else:
        条件式Aと条件式Bが「FALSE」で、条件式Eと条件式Fが「FALSE」のときに行う処理
    endif;
endif;

PHPブロックとHTMLブロック

<?php if ( 条件式A ): ?>
    条件式Aが「TRUE」のときに行う処理
    <?php if ( 条件式C ): ?>
        条件式Aが「TRUE」で、条件式Cが「TRUE」のときに行う処理
    <?php elseif ( 条件式D ): ?>
        条件式Aが「TRUE」で、条件式Cが「FALSE」、条件式Dが「TRUE」のときに行う処理
    <?php else: ?>
        条件式Aが「TRUE」で、条件式Cと条件式Dが「FALSE」のときに行う処理
    <?php endif; ?>
<?php elseif ( 条件式B ): ?>
    条件式Aが「FALSE」で、条件式Bが「TRUE」のときに行う処理
<?php else: ?>
    条件式Aと条件式Bが「FALSE」のときに行う処理
    <?php if ( 条件式E ): ?>
        条件式Aと条件式Bが「FALSE」で、条件式Eが「TRUE」のときに行う処理
    <?php elseif ( 条件式F ): ?>
        条件式Aと条件式Bが「FALSE」で、条件式Eが「FALSE」、条件式Fが「TRUE」のときに行う処理
    <?php else: ?>
        条件式Aと条件式Bが「FALSE」で、条件式Eと条件式Fが「FALSE」のときに行う処理
    <?php endif; ?>
<?php endif; ?>

サンプル

波括弧で括る方法

<?php
$varA = 30;
$varB = 50;
$varC = 80;
$varD = 20;
$varE = 'サンプル';
if ( $varA > $varB ) {
    echo '<p>$varAは$varBより大きい。</p>';
    if ( $varA > $varC ) {
        echo '<p>$varAは$varCよりも大きい。</p>';
    } elseif ( $varA < $varC ) {
        echo '<p>$varAは$varCよりは小さい。</p>';
    }
} elseif ( $varA == $varB ) {
    echo '<p>$varAと$varBは等しい。</p>';
} else {
    echo '<p>$varAは$varBより小さい。</p>';
    if ( $varA < $varD ) {
        echo '<p>$varAは$varDよりも小さい。</p>';
    } elseif ( $varA > $varD ) {
        echo '<p>$varAは$varDよりは大きい。</p>';
        if ( $varE ) {
            echo "<p>$varE</p>";
        }
    }
}
?>

↓↓↓出力結果↓↓↓

$varAは$varBより小さい。
$varAは$varDよりは大きい。
サンプル

コロンとendif;を使う方法

PHPブロックのみ

<?php
$varA = 30;
$varB = 50;
$varC = 80;
$varD = 20;
if ( $varA > $varB ):
    echo '<p>$varAは$varBより大きい。</p>';
    if ( $varA > $varC ):
        echo '<p>$varAは$varCよりも大きい。</p>';
    elseif ( $varA < $varC ):
        echo '<p>$varAは$varCよりは小さい。</p>';
    endif;
elseif ( $varA == $varB ):
    echo '<p>$varAと$varBは等しい。</p>';
else:
    echo '<p>$varAは$varBより小さい。</p>';
    if ( $varA < $varD ):
        echo '<p>$varAは$varDよりも小さい。</p>';
    elseif ( $varA > $varD ):
        echo '<p>$varAは$varDよりは大きい。</p>';
    endif;
endif;
?>

↓↓↓出力結果↓↓↓

$varAは$varBより小さい。
$varAは$varDよりは大きい。

PHPブロックとHTMLブロック

<?php
$varA = 30;
$varB = 50;
$varC = 80;
$varD = 20;
if ( $varA > $varB ):
?>
    <p>$varAは$varBより大きい。</p>
    <?php if ( $varA > $varC ): ?>
        <p>$varAは$varCよりも大きい。</p>
    <?php elseif ( $varA < $varC ): ?>
        <p>$varAは$varCよりは小さい。</p>
    <?php endif; ?>
<?php elseif ( $varA == $varB ): ?>
    <p>$varAと$varBは等しい。</p>
<?php else: ?>
    <p>$varAは$varBより小さい。</p>
    <?php if ( $varA < $varD ): ?>
        <p>$varAは$varDよりも小さい。</p>
    <?php elseif ( $varA > $varD ): ?>
        <p>$varAは$varDよりは大きい。</p>
    <?php endif; ?>
<?php endif; ?>

↓↓↓出力結果↓↓↓

$varAは$varBより小さい。
$varAは$varDよりは大きい。

スポンサード リンク

カテゴリー: if, PHP, 制御構造 タグ: パーマリンク