PHPのif文の使い方とは?条件判定で用いる比較演算子や論理演算子も解説!
- システム
エンジニア - if分の構文について教えてください。
- プロジェクト
マネージャー - if分とは、条件によって処理を分岐させる構文です。演算子と組み合わせることで、様々な処理を行うことができます。
if文とは?
プログラムの制御の流れを変えたいときには、条件分岐が必要です。分岐ができないと、一直線にいつも同じ命令を実行するコードしか書けません。
条件分岐の最も基本的な方法は、if文です。基本的な記法は、次のようになります。
1
2
3
4
5
|
if ( 条件 ) {
// 条件が成立した場合の処理
}
|
判定したい条件を括弧内に書き、その下に成立時に実行したい処理を書きます。条件には、単純な比較から、複雑な条件まで書けるので、if文の利用範囲は広いです。
PHP でのif文の書き方
PHPのif文の書き方について、プログラムコードの例を挙げながら解説していきます。
簡単な例ばかりですので、実際に実行してみてください。また、条件式や変数の値を変えた場合についても試してみるとよいでしょう。
if文の基本形
基本的なif文では、判定したい条件と、その条件が成立したときに実行するコードを記述します。次の例では、値が100より大きいかどうかを判定しています。
1
2
3
4
5
6
7
|
$value = 300;
if ($value > 100) {
echo "値は100より大きい\n";
}
|
実行結果は、次のようになります。
1
2
3
|
値は100より大きい
|
尚、実行文が1つしかない場合には、中括弧を省略することができます。上のif文は、次のように書いても同じです。
1
2
3
4
|
if ($value > 100)
echo "値は100より大きい\n";
|
elseのあるif文
条件不成立時のコードも書きたい場合には、elseを使用します。ifの条件が成立しなかったときに実行する文を、elseに記述します。コード例を示します。
1
2
3
4
5
6
7
8
9
|
$value = 50;
if ($value > 100) {
echo "値は100より大きい\n";
} else {
echo "値は100以下です\n";
}
|
実行結果は、次のようになります。
1
2
3
|
値は100以下です
|
elseifのあるif文
ifの条件式が成立しなかったときに、別の条件判定を行うために、elseifを使うことができます。次の例では、条件式「500より大きい」が偽のときに、条件式「200より大きい」を判定します。
1
2
3
4
5
6
7
8
9
10
11
|
$value = 300;
if ($value > 500) {
echo "値は500より大きい\n";
} elseif ($value > 200) {
echo "値は200より大きい\n";
} else {
echo "値は200以下です\n";
}
|
実行結果は、次のようになります。
1
2
3
|
値は200より大きい
|
if文のネスト
if文は、多重にネストさせて記述することができます。次のPHPコードの例では、値1が500より大きい場合に、値2について判定します。
1
2
3
4
5
6
7
8
9
10
11
12
|
$value1 = 600;
$value2 = 100;
if ($value1 > 500) {
if ($value2 > 200) {
echo "値1は500より大きく、値2は200より大きい\n";
} else {
echo "値1は500より大きく、値2は200以下\n";
}
}
|
実行結果は、次のようになります。
1
2
3
|
値1は500より大きく、値2は200以下
|
PHPのif文で使える比較演算子
if文の条件式では、一般に比較演算がよく使われます。ここでは、PHPのif文で使われる比較演算子の種類を説明します。また、2種類の等値比較の違いを、コード例を用いて示します。
比較演算子の種類
PHPの比較演算子には、大小関係を比較する「<�」「>」「<=」「>=」や、等値関係を比較する「==」「!=」、また、等値関係を厳密に判定する「===」「!==」があります。
次の表に比較演算子をまとめます。
比較演算子 | 意味 |
---|---|
x < y | xはyより小さい |
x > y | xはyより大きい |
x <= y | xはyより小さいか等しい |
x >= y | xはyより大きいか等しい |
x == y | xとyの値は等しい |
x === y | xとyの値が型も含めて等しい |
x != y | xとyの値は等しくない |
x !== y | xとyの値が等しくないか、または型が異なる |
2種類の等値比較
等値比較で2つの値が等しい、または等しくないことを判定する場合、値だけを比較する演算子と、型まで含めた厳密な比較をする演算子があります。
次の例では、整数123と文字列の“123”を比較するPHPコードの例を記述しています。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
$value1 = 123;
$value2 = "123";
echo "値1:".$value1."\n";
echo "値2:".$value2."\n";
if ($value1 == $value2) {
echo "値1と値2は等しい(==)\n";
} else {
echo "値1と値2は等しくない(==)\n";
}
if ($value1 === $value2) {
echo "値1と値2は等しい(===)\n";
} else {
echo "値1と値2は等しくない(===)\n";
}
|
1
2
3
4
5
6
|
値1:123
値2:123
値1と値2は等しい(==)
値1と値2は等しくない(===)
|
PHPで使える論理演算子
if文の条件式に、複数の条件の組合せを記述したいとき、論理演算子を使用します。論理積「&&」、論理和「||」、論理否定「!」の各演算子の概要を説明し、コード例を示します。
論理積
複数の条件が全て成立しているときに実行したい処理がある場合には、論理積を用います。2つの条件式AとBの真偽の組合せにより、「A && B」の値がどうなるかを次の表に示します。
A | B | A && B |
---|---|---|
真 | 真 | 真 |
真 | 偽 | 偽 |
偽 | 真 | 偽 |
偽 | 偽 | 偽 |
論理積を使ったPHPコードの例を次に示します。
1
2
3
4
5
6
7
8
9
10
|
$month = 1;
$day = 5;
if ($month == 1 && $day <= 7) {
echo "あけましておめでとうございます\n";
}else {
echo "おはようございます\n";
}
|
実行結果は、次のようになります。
1
2
3
|
あけましておめでとうございます
|
論理和
複数の条件のいずれかが成立したときに実行したい処理がある場合には、論理和を用います。2つの条件式AとBの真偽の組合せにより、「A || B」の値がどうなるかを次の表に示します。
A | B | A || B |
---|---|---|
真 | 真 | 真 |
真 | 偽 | 真 |
偽 | 真 | 真 |
偽 | 偽 | 偽 |
論理和を使ったPHPコードの例を次に示します。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
if ($month == 12 || $month == 1 || $month == 2) {
echo "冬です\n";
} elseif ($month == 3 || $month == 4 || $month == 5) {
echo "春です\n";
} elseif ($month == 6 || $month == 7 || $month == 8) {
echo "夏です\n";
} elseif ($month == 9 || $month == 10 || $month == 11) {
echo "秋です\n";
}else {
echo "エラーですn";
}
|
否定
ある条件が偽のときに実行したい処理がある場合には、否定演算を用います。条件Aの真偽に対して、否定「! A」の値は、表のように逆の値になります。
A | ! A |
---|---|
真 | 偽 |
偽 | 真 |
否定を使ったPHPコードの例を次に示します。このコードでは、月の値を示す変数$monthが1以上12以下でない場合に、エラー処理を行います。
1
2
3
4
5
6
|
if (! ($month >= 1 && $month <= 12)) {
echo "月の値が不正です";
// エラー処理
}
|
この条件式は、「$monthが1未満または12より大きい」と記述しても同じですが、正常な値である「1以上12以下」の条件に否定をつけることで、わかりやすくしています。
- システム
エンジニア - 複雑で一度ではなかなか理解するのが大変ですが、ぜひマスターしたいですね。
- プロジェクト
マネージャー - if分はもっとも基本的な処理ですので、ここは頑張ってぜひマスターしてください。
PHPのif文をマスターしよう
プログラムの実行の流れを変えたいときの基本であるif文について解説しました。PHPのif文の構文のポイントは、ifで条件を判定できること、elseifでさらに条件を判定できること、elseで成立しない場合の処理を書けることです。
判定条件で使う比較演算子についても紹介しました。また、論理演算を用いて、複数の条件を組合せた複雑な条件を記述することもできます。
PHPのif文の正しい記述方法を学び、適切なコードが書けるようになりましょう。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
新着案件New Job
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅) -
PMO/東京都豊島区/【WEB面談可】/在宅勤務
月給55万~55万円東京都豊島区(池袋駅)