ホーム > PHPの文法 > 6 制御文 > PHP の if 文 条件式による分岐処理
PHPリファレンス

UPDATE:2019年06月28日

PHP の if 文 条件式による分岐処理

PHP の  if 文 条件式による分岐処理 | wepicks!
PHP4 PHP5 PHP7


if文 簡単まとめ

1 Minute Note

  • もし ~ なら ・・ する

    if (式 ~ ) 文・・

  • if文 の結果を評価して「真(TRUE)」の場合に 文(処理)実行し、「偽(FALSE)」であれば 文(処理)無視される
    詳しくはこちら
  • if文 の式の結果は論理型で得る 論理型 詳しくはこちら
  • 文(処理)が複数ある場合は「{ }(ブロック)」で括る

    if (式 ~ ) {
      文・・
      文・・
      文・・
    }

  • if文 は if文 の中に幾らでも記述することが出来きる ネスト(入れ子)が可能

    if (式 ~ ) {
      if (式 ~ ) {
        if (式 ~ ) {
            文・・
        }
      }
    }

  • とはコードの記述単位の1つで、PHPの場合は「;(セミコロン)」で区切られるまでのコード
if文 は条件を示す文です。条件によって処理を切り替えることが出来ます。ある式「 if(条件式) 」の値が「真(TRUE)」であるかどうかを調べ、式の値が「真(TRUE)」である場合に文を実行します。式の値が「偽(TRUE)」の場合は文は無視されます。



if文 とは

POINT

  • もし ~ なら ・・ する

    if (式 ~ ) 文・・
  • if文 は式の結果を評価して「真(TRUE)」の場合に(処理)を実行し、「偽(FALSE)」であれば文(処理)は無視される
    詳しくはこちら
  • if文 の式の結果は論理型で得る 論理型 詳しくはこちら
  • ※文とはコードの記述単位の1つで、PHPの場合は「;(セミコロン)」で区切られるまでのコードです。

if文条件を示す文です。条件によって処理を切り替えることが出来ます。if文 はある式( if(条件式) )の値が「真(TRUE)」であるかどうかを調べ、式の値が「真(TRUE)」である場合に文を実行します。式の値が「偽(FALSE)」の場合は文は無視されます。

日本語にすると「もし ~ なら ・・ する」ということになります。「 ~ 」の部分が 式 で「 ・・ 」の部分が 文 に相当します。

文とはコードの記述単位の1つで、PHPの場合は「;(セミコロン)」で区切られるまでのコードです。

これは文が2つあることになります。

if文 の 式 は論理値を返す

  • if文 の 式 は、論理値の「真(TRUE)」「偽(FALSE)」の値を返す式を作る

if文 はある式の値の「真(TURE)」「 偽(FALSE)」を調べるので、if文 の式の結果は「真(TURE)」「偽(FALSE)」の論理型で得る必要があります。論理型とは 真 偽 を表す値の型です。この型の値は 論理値 である キーワード の TREU ( true ) と FALSE ( false )のどちらかです。大文字小文字の区別はありません。FALSE と見なされる値は 空の文字列 や 整数の0 などで、FALSE 以外は TRUE と判定されます。詳しくはこちらをお読みください。
そのためには、式に「比較演算子」や「論理演算子」など使用して、論理値の「真(TRUE)」「偽(FALSE)」の値を返す式を作ります。式とは値があるもののことで、最も簡単な式はリテラル値(数値や文字列など値そのもの) 定数 変数 などです。演算子を使用すれば複雑な式を作ることができます。

1 は 1 という値を持った式で、「真(TURE)」と判定されます。

比較演算子は「if(10 == 10)」の「==」などです。論理演算子は「if((10 == 10) and (20 == 20))」の and などです。演算子についてはこちらを参照下さい。
プログラムを記述する上で様々な条件によって処理を分岐させたい場合があります。例えば、ある変数の値が 10 の場合は A を実行、20 の場合は B を実行、などのように、条件によって実行内容を分岐させる場合です。このような場合に if文 を使用します。

結果は

$aの値は20です。

となります。
比較演算子「 === 」はデータ型の比較も行います。

以下の場合は文は無視されます。

結果は

となります。


構文


if文 の基本構文

if (式 ~ ) 文・・

//文が1つの場合は改行しても大丈夫
if (式 ~ )
文・・

if文 の条件式を評価し結果が「真(TRUE)」であれば処理を進め文を実行します。式の結果が「偽(FALSE)」であれば処理は実行せずに文は無視されます。

単純な条件式の例

結果は

TRUE

となります。

例の整数値「1」は1という値を出力する単純な式です。PHPではFALSEと見なされる以外はすべてTRUEと評価されます。「1」は式であり、「真(TRUE)」の論理値を返し、「echo」の文が実行されます。

比較演算子を利用した条件式の例

結果は

aとbは同一です。

となります。

比較演算子「===」を使用した真偽を求める式です。「===」は同一である場合に「真(TRUE)」を返します。この演算子は左辺と右辺のデータ型が同じであるかも調べます。

論理演算子を利用した条件式の例

結果は

aとbはTRUEです。

となります。

論理演算子「and」を使用した真偽を求める式です。「and」は右辺と左辺が「真(TRUE)」である場合に「真(TRUE)」を返します。


文が複数ある場合は「{ }(ブロック)」で括る

文を複数実行する場合は、文を「{ }(ブロック)」で囲みます。

if (式 ~ ) {
  文・・
  文・・
  文・・
}

文とはコードの記述単位の1つで、PHPの場合は「;(セミコロン)」で区切られるまでのコードです。「 { } (波括弧 ) 」で括れば複数の文を記述することができます。

結果は

$aは:1
$bは:1

となります。

例は比較演算子「===」を使用した真偽を求める式です。「===」左辺の値と右辺の値が同一である場合に「真(TRUE)」を返します。この演算子は左辺と右辺のデータ型が同じであるかも調べます。


if文 は if文 の中に記述することができる

if文 は if文 の中に幾らでも記述することが出来きます。ネスト(入れ子)が可能です。

if (式 ~ ) {
  if (式 ~ ) {
    if (式 ~ ) {
        文・・
    }
  }
}

結果は

$aより$bは大きい $bより$cは大きい

となります。

例は比較演算子「<」を使用した真偽を求める式です。「<」は左辺より右辺がより大きい場合に「真(TRUE)」を返します。


比較演算子

比較演算子とは

POINT

  • 比較演算子 は、左右のオペランドを比較する
  • 比較演算子 は、結果を論理値「TRUE(真)」「FALSE(偽)」で返す

比較演算子は左辺オペランド右辺オペランドを比較します(オペランド:演算の対象となる値や変数や式のこと)。比較の結果が真なら論理値の「true(真)」を返し、そうでない場合は論理値の「false(偽)」を返します(論理型 詳しくはこちら)。オペランドには数値文字列の両方が使用できます。また他のさまざまな型を比較できます。

比較演算子の種類

比較演算子の種類、優先順位、結合時の評価です。すべての演算子の種類や優先順位はこちらを参照下さい。

演算子名前優先順位結合時の評価結果
==等しい1結合しない$a == $b 型の相互変換をした後で $a が $b に等しい時に TRUE。
===同じ1結合しない$a === $b $a が $b に等しく同じ型である場合に TRUE
!=等しくない1結合しない$a != $b型の相互変換をした後で $a が $b に等しくない場合に TRUE
<>等しくない1結合しない$a <> $b型の相互変換をした後で $a が $b に等しくない場合に TRUE
!==同じでない1結合しない$a !== $b$a が $b と等しくないか、同じ型でない場合に TRUE
>より大きい2結合しない$a > $b$a が $b より大きい時に TRUE
<より小さい2結合しない$a < $b$a が $b より小さい時に TRUE
>=以上2結合しない$a >= $b$a が $b より大きいか等しい時に TRUE
<=以下2結合しない$a <= $b$a が $b より小さいか等しい時に TRUE
<=>宇宙船2結合しない$a <=> $b$a が $b より小さいときに負の値、
$b と等しいときに 0、
$b より大きいときに正の値。(PHP7以降で使用可能)

比較演算子については「PHP の 比較演算子 のすべて【初心者向け】」をご覧下さい。


論理演算子

論理演算子とは

POINT

  • 論理演算子論理値を評価し論理値を返す
  • 論理演算子アルファベット版記号版 がある
  • アルファベット版の優先順位が上

論理演算子は論理値を評価し、結果を論理値で返します。オペランドは論理値とされます。(オペランドとは演算子の対象となる数値や文字列や式などの値のこと)。論理値は「」「」を表す値であり、キーワード「TREU」と「FALSE」で表されます。論理値の詳細についてはこちらを参照下さい。

論理演算子はアルファベット版記号版2種類あります。アルファベット版と記号版では評価の優先順位が異なり、アルファベット版の優先順位が上です。

論理演算子の種類

論理演算子の種類、優先順位、結合時の評価です。すべての演算子の種類や優先順位はこちらを参照下さい。

演算子名前優先順位結合時の評価結果
and論理積3left$a and $b $a および $b が共に TRUE の場合に TRUE
or論理和1left$a or $b $a または $b のどちらかが TRUE の場合に TRUE
xor排他的論理和2left$a xor $b $a または $b のどちらかが TRUE でかつ両方とも TRUE でない場合に TRUE
!否定6right! $a$a が TRUE でない場合 TRUE
&&論理積5left$a && $b $a および $b が共に TRUE の場合に TRUE
||論理和4left$a || $b$a または $b のどちらかが TRUE の場合に TRUE

論理演算子については「PHP の 論理演算子」をご覧下さい。


型の比較表

PHP の gettype() / empty() / is_null() / isset() などの関数と型と値についての挙動、型と比較演算子の挙動についての表です。緩やかな比較「==」と厳密な比較「===」での振る舞いが確認できます。

== による緩やかな比較

TRUEFALSE10-1"1""0""-1"NULLarray()"php"""
TRUETRUEFALSETRUEFALSETRUETRUEFALSETRUEFALSEFALSETRUEFALSE
FALSEFALSETRUEFALSETRUEFALSEFALSETRUEFALSETRUETRUEFALSETRUE
1TRUEFALSETRUEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSE
0FALSETRUEFALSETRUEFALSEFALSETRUEFALSETRUEFALSETRUETRUE
-1TRUEFALSEFALSEFALSETRUEFALSEFALSETRUEFALSEFALSEFALSEFALSE
"1"TRUEFALSETRUEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSE
"0"FALSETRUEFALSETRUEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSE
"-1"TRUEFALSEFALSEFALSETRUEFALSEFALSETRUEFALSEFALSEFALSEFALSE
NULLFALSETRUEFALSETRUEFALSEFALSEFALSEFALSETRUETRUEFALSETRUE
array()FALSETRUEFALSEFALSEFALSEFALSEFALSEFALSETRUETRUEFALSEFALSE
"php"TRUEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSETRUEFALSE
""FALSETRUEFALSETRUEFALSEFALSEFALSEFALSETRUEFALSEFALSETRUE

=== による厳密な比較

TRUEFALSE10-1"1""0""-1"NULLarray()"php"""
TRUETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
FALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
1FALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
0FALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
-1FALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
"1"FALSEFALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSE
"0"FALSEFALSEFALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSE
"-1"FALSEFALSEFALSEFALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSE
NULLFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSETRUEFALSEFALSEFALSE
array()FALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSETRUEFALSEFALSE
"php"FALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSETRUEFALSE
""FALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSETRUE

PHP 関数による $x の比較

※HTMLフォームは整数、浮動小数点数、boolean を渡しません。文字列を渡します。例えば、html form の input で整数型の値を送信しても受信した値は文字列型になります。

※注意: $x が定義されていない状態で単に if($x) とすると、E_NOTICE レベルのエラーが発生します。代わりに、empty() や isset() を使うか、あるいは 変数$x を初期化するようにしてください。

gettype()empty()is_null()isset()boolean : if($x)
$x = "";stringTRUEFALSETRUEFALSE
$x = null;NULLTRUETRUEFALSEFALSE
var $x;NULLTRUETRUEFALSEFALSE
$x が未定義NULLTRUETRUEFALSEFALSE
$x = array();arrayTRUEFALSETRUEFALSE
$x = array('a', 'b');arrayFALSEFALSETRUETRUE
$x = false;booleanTRUEFALSETRUEFALSE
$x = true;booleanFALSEFALSETRUETRUE
$x = 1;integerFALSEFALSETRUETRUE
$x = 42;integerFALSEFALSETRUETRUE
$x = 0;integerTRUEFALSETRUEFALSE
$x = -1;integerFALSEFALSETRUETRUE
$x = "1";stringFALSEFALSETRUETRUE
$x = "0";stringTRUEFALSETRUEFALSE
$x = "-1";stringFALSEFALSETRUETRUE
$x = "php";stringFALSEFALSETRUETRUE
$x = "true";stringFALSEFALSETRUETRUE
$x = "false";stringFALSEFALSETRUETRUE


サンプルコード

– サンプル Click Here ! –

実行結果
簡単なif文 結果がTREUの場合
TRUEです。

簡単なif文 結果がFALSEの場合

if文 比較演算子
aとbは同一です。

if文 論理演算子
$aは:1
$bは:1

if文 入れ子
$aより$bは大きい。$bより$cは大きい。

– サンプル Click Here ! –


タグ(=記事関連ワード)

日付

公開日:2019年5月14日
最終更新日:2019年06月28日

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

https://wepicks.net/phpref-structures_if/trackback/

page top