PHPの基本構文その1 条件分岐

PHPの基本構文その1 条件分岐

前回は「プログラミング初心者がPHPを学ぶ前に理解しておきたいこと」というタイトルで、PHPに触れたことがない方に向けた記事を書きました。今回の記事は、前回学んだことを踏まえた上で、PHPの代表的な基本構文である条件分岐を学んでいきます。

if文

PHPには処理を実行していく流れがあります。普通は、記述した順に上から下へ、処理が実行されます。処理が実行される様子を「もし〇〇 だったら、△△をする」と表します。

if文の書き方

「条件 a に当てはまったときは、処理 A を実行する」

else文

では、条件によって処理を別々に行いたい(条件分岐したい)場合があったとします。例えば、変数の値が20以上なら処理Aを行い、20以下なら処理Bを行うといった風に。その場合に、ifとセットでelse文を使えば、PHPの処理を分岐させることができます。

else if文

今までの例文をみると、条件は条件aのみでしたが、条件を複数にして分岐させることもできます。

else if文を使えば、else if(条件c)、else if(条件d)、else if(条件e)といったように無限に条件を増やしていくことが可能です。注意点としましては、条件分岐は上から順に条件が一致した時点で処理が実行されるので、記述順を考慮しないと予期せぬ処理がされてしまいます。

比較演算子

前章では、条件部分にa、bなどをあてていましたが、実際にプログラム処理を実行させるためには、この書き方のままではいけません。この章では、条件の書き方を説明していきます。

条件分岐が実行されるときの条件には「aとb は等しい」や「aはb より大きい」などのように条件を記述します。この条件式の中で使われるのが、比較演算子です。

比較演算子の種類

演算子意味
==a == baとbの値が等しい
 != a != b aとbの値が等しくない
<a < b aはb以上
 >  a > b  aはb以下
>= a >= b  aはb以上か、aとbは等しい
<=  a <= b bはa以上か、aとbは等しい

では、ひとつ例文をあげるので、文法を確認してみましょう。

まず $old という変数には、「22」が入っています。そして if 文の条件は、($old <= 20) です。$old には「22」が代入されていますから、実際には (22 < 20) という条件になります。22 は 20 以上ので、条件に当てはまります。ですので、 echo “変数の値は20以上です。” という処理が実行されます。

もしも、変数 $int の値が「22」ではなく、「19」だったとします。その場合は、 条件が(19 < 20) になるので、 echo “変数の値は20以上ではありません。” という処理が実行されます。

プログラム業界では、if文で実行される処理をtrue(正しい・真)、else文で実行される処理をfalse(間違っている・偽)と呼び、この2つをまとめて「真偽値」と呼びます。

使い方としては、

  • (22 < 20) … trueを返す
  • (19 < 20) … falseを返す

上記の例では、条件で数値を比較しましたが、比較演算子は、数値だけではなく、文字列も比較することができます。

上記例では、== を使っているので、この場合、変数$strには”Bigmac株式会社”が入っているので、trueが返され、「Bigmac株式会社」です”が実行されます。

WordPressで条件分岐を使う

WordPress には、様々な条件を設定した条件分岐タグというものが元々用意されています。数ある条件分岐タグの中から、よく使われているであろうと思うものをいくつかご紹介します。

  • is_home()……トップページが表示されている場合
  • is_page()……固定ページが表示されている場合
  • is_post_type_archive()…カスタム投稿のアーカイブページが表示されている場合

その他にも、条件分岐タグはたくさんあります。詳細を知りたい方は、WrodPress CODEX日本語版 条件分岐タグよりご確認ください。

このエントリーをはてなブックマークに追加

筆者

S.Yamaguchi

Bigmac制作部で、主にWebデザイン兼コーディングを担当しています。 シンプルでフラットなデザインが得意です。 好きな飲み物はカフェオレで、夢はクラゲを飼うことです。
 座右の銘は、「ケセラセラ(なるようになるから流れるままにいこう)」 休日は、海外ドラマかアニメを見ています。 最近、髪をばっさり切って小さいきのこになりました。 どうぞ宜しくお願いします。

筆者が最近執筆した記事