PHPでif文を使いこなす
if文を使用することで、PHPで作成したプログラムに、条件に応じたプログラム処理の分岐を加えることが出来ます。今回は、実際のソースコードと共に、PHPのif文について解説していきます。
if文とは
全てのプログラムは順次分岐繰り返しの三大要素で成り立っています。
if文とは、これら三大要素のうち分岐に値するプログラミングの基本構文です。
if文の概要
if文は、分岐のための構文です。では分岐とはなんでしょうか?分岐とは「もし〇〇だったら、×××する」という条件に応じて処理を変えることを意味しています。
分岐という概念が存在しなければ、プログラムは柔軟性の一切存在しない、単純な処理のみを行うものになってしまうことでしょう。分岐があるからこそ、プログラムは条件に応じた判定を下し、様々な処理を柔軟にこなすことが出来るのです。
その分岐を行うための構文であるif文ですが、これはほぼ全てのプログラミング言語において備わっている構文です。扱っている言語を問わず重要な構文ですので、これからプログラミングの学習をはじめる方は、しっかりとif文について理解を深めていきましょう。
PHPのif文特有の事柄
ほとんどのプログラミング言語に備わっているif文ですが、その記法には若干の差異が見られます。PHPにおいてはif文について、いくつかの記法が用意されています。
もっとも基本的な構文から、標準的なif文より記述が省略された構文まで、状況に応じて自由に選ぶことが出来るのが、PHPのif文の特徴といえます。
if文の書き方
PHPにおけるもっとも基本的なif文の書き方は、次の通りです。
if ($flag == true) {
// 任意の処理を記述
}
「if + 括弧 + 条件」で「もし~なら」という条件を記述することができます。また、その後の波括弧でくくられた箇所には、条件に該当する場合にのみ実行する処理を記述します。
このif文ですが、同じ内容のif文を次のように書くことも出来ます。
if ($flag == true) : # 波括弧を使わない省略記法
// 任意の処理を記述
endif;
最初に示したif文は波括弧でくくられた箇所に処理を記述するタイプでしたが、こちらはコロンからendifまでの間に処理を記述するタイプのif文です。
こちらの記法のif文も、PHPをつかった開発を行っていると時折見かける機会がありますので、覚えておきましょう。
else文の作成・使用方法
if文は「もし〇〇だったら、×××する」という意味合いのものでした。
今から解説するelse文を使えば、条件分岐を「もし〇〇だったら×××し、〇〇でなければ×××する」という意味合いのものに拡張することが出来ます。
コードは以下のように書きます。
if ($flag == true) { // もし〇〇なら
// 任意の処理を記述
} else { // もし〇〇でなければ(否定の条件分岐)
// 任意の処理を記述
}
このように、else文を使えば条件に当てはまらない場合の処理を明記することが出来ます。しかし、if文とelse文の組み合わせだけでは、条件分岐のパターンとして不足することもあるでしょう。
そういった場合に使用されるのがelseif文です。
elseif文の作成・使用方法
elseif文は「もし〇〇だったら×××し、そうではなく〇〇だったら×××する」という意味合いのものです。
コードは以下のように書きます。
if ($number > 100) { // もし〇〇なら
// 任意の処理を記述
} elseif ($number > 50) { // もし〇〇ではなく、◇◇なら
// 任意の処理を記述
} else { // もしどれも当てはまらなければ
// 任意の処理を記述
}
else文は単にもしここまでにどの条件も当てはまらなければという場合の処理を記述するのみでしたが、elseif文では、if文同様に条件を指定することが出来ます。
if文で指定した条件に当てはまらないときに遷移し、その状態でもう一度異なる条件での分岐を行うことができるelseif文は、else文の中にif文を書くより可読性が高まります。
if文、else文と同様にプログラミングにおいて必須の技術であるため、しっかりと覚えておきましょう。
条件判定のための演算子
if文やelseif文の解説の中で、if文内の括弧に条件を指定することを述べました。この括弧内で条件を指定する際には、主に2つの演算子を使用します。ひとつは比較演算子、もうひとつが論理演算子です。これらについて解説していきます。
比較演算子
比較演算子は次のような演算子を示します。
- <(小なり)
- >(大なり)
- <= (小なりイコール(以下))
- >= (大なりイコール(以上))
- == (等価)
- != (等価の否定)
- === (厳密な等価)
これらは左辺と右辺の値の比較に用いられる演算子です。
比較演算子は 3 < 20
のように、左辺と右辺の値が演算子の意味するものと同様の状態(左辺が右辺より小さい)の場合にのみ true を返します。そうでない場合にはfalseを返します。
if文やelseif文の括弧は、括弧内が true なら処理を行うという判定を下すようになっています。
逆に括弧内が false である場合は処理を行わないようになっています。
論理演算子
論理演算子は次のような演算子を示します。
- && (論理積)
- || (論理和)
- ! (否定)
これらは論理演算に用いられる演算子です。論理積は左辺と右辺が共にtrueである場合に true を返します。一方、論理和は左辺と右辺のどちらかが true であれば true を返します。否定の論理演算子は、対象の真偽値を逆転させます。
PHPにはこの他にも and
や or
といった論理演算子が存在します。論理演算子を使いこなすことで、if文等の条件分岐をより自由に制御することができます。
まとめ
if文やelse文、elseif文を活用することで、条件分岐処理を実装することができました。
これら条件分岐の構文や、比較演算子と論理演算子の組み合わせによる条件の具体的な指定により、値の状態に応じた柔軟な処理切り替えを行うことができます。
TECH PLAYでは、エンジニアの方向けに勉強会・イベント情報を提供しています。
ご興味のある方はぜひご参加ください。