if
Home >> PHP言語リファレンス >> PHPの制御構造 >> if

if

if文

if文は条件判定の文です。if文で条件を判定する事によって、ある条件に一致した時のみ処理の実行ができるようになります。

分かりやすくいうと、「もし○○なら××の処理をする」という事です。PHPではこの「○○なら」というのを論理型(TRUEもしくはFALSE)を使って判定しています。条件が合えばTRUE、条件が合わなければFALSEになるわけですが、その条件の指定方法(条件式)はいくつかあり、簡単な条件式は比較演算子で表せる事が多いです。

基本の構文

(条件式)の部分がTRUEであれば処理を実行し、FALSEであれば実行せずに無視します。

使用方法:
if( 条件式 )
  
処理;
サンプル:
<?php
$a
= $b = 3; //$aと$b同時に同じ値を代入
if( $a == $b ){
  echo
'$aと$bには同じ値が代入されています。';
}
?>

出力結果

$aと$bには同じ値が代入されています。

このサンプルでは$aと$bに同じ値が代入されていればecho()文の中身が出力されますが、そうでない場合はecho()文自体を無視しますので、出力されません。

処理が複数の場合の構文

処理が複数ある場合には大括弧「{}」で括ります。大括弧「{}」を使って処理のかたまりを表すのですが、このような処理のかたまりの事をブロックと呼びます。

ブロックを作成するために必要な大括弧「{}」には行の終わりを示すセミコロン「;」が含まれていると解釈されるため、ブロックの最後の文にセミコロン「;」をつける必要はありません。ですが、個人的には行末にセミコロンをつけるのは「癖」にしてしまった方がいいと思ってるのでサンプルの最後の行でもセミコロンつけてます。

使用方法:
if( 条件式 ){
  
処理1;
  
処理2;
}
サンプル:
<?php
$a
= $b = 3;
if(
$a == $b ){
  echo
"\$aと\$bには同じ値が代入されています。<br>\n";
  echo
'$aと$bの値:'.$a;
}
?>

出力結果

$aと$bには同じ値が代入されています。
$aと$bの値:3

上のサンプルの場合は2つのecho()文がブロックになります。

ネスト(入れ子)構造

if文は他のif文とネストする事ができます。ネストとは入れ子の事で、この場合は、if文の中にさらにif文を入れる事ができるという事になります。

<?php
$a
= 1;
$b = 3;
$c = 5;
if(
$a < $b ){
    echo
'$aは$bより小さい。';

    
//if文のネスト
    
if( $b < $c ){
        echo
'$bは$cより小さい。';
    }
}

?>

出力結果

$aは$bより小さい。$bは$cより小さい。

上のサンプルの場合、まず$aと$bを比較し、$aの方が$bより小さい場合に初めて$bと$cの比較が行われます。

この場合は「もし○○なら××し、○○なおかつ△△なら□□する・・・」というかんじでしょうか。

このように「もし○○なら××」というif文の処理をネストする事によってより複雑な条件式を作る事ができます。この他にもif文の拡張としてelseelseifが用意されていますのでそちらもご覧下さい。