【連載】春の新入社員におくるPHP超入門 ~ その3:条件分岐 – if文・switch文 –

★★★ Live配信告知 ★★★

第4回のPS Live配信は、昨年のCloudNative Days Tokyo 2020で、OSSのAPIGatewayでおなじみKongが開発する、サービスメッシュのKumaについて発表を行った槌野が、再びKumaについて語ります!
【2021/6/25(金) 17:00〜17:30】Kumaでメッシュなマイクロサービス リターンズ

こんにちは。サイオステクノロジーの川田です。

PHPを始めてみよう!触ってみよう!と考えている方向けへのPHP超入門をお届けしております。
今回は第3回となります。

アジェンダ

      1. 環境構築 – Visual Studio Code × Docker –
      2. 文字列の出力 – Hello World! –
      3. イマココ☞ 条件分岐 – if文・switch文 –
      4. 繰り返し処理 – while文・for文・foreach文 –
      5. 関数 – function –
      6. HTTP/HTTPS – GET・POST –
      7. DBと連携するWebアプリケーション(執筆中)

タイトルにもある通り、if文とswitch文をご紹介していきます。

使用するツールはこちらです。
環境の詳細についてはアジェンダの「1.環境構築」へ(/・ω・)/

  • Visual Studio Code
    拡張機能:Remote Development

  • Docker

条件分岐について

条件分岐についてご説明します。
「もし条件を満たしていたら、〇〇をしてね」と命令をすることができます。
公園で遊ぶことに例えてみます。滑り台、ブランコ、砂場の3種類があるとします。

条件1:滑り台を選んだ場合⇒手をあげて滑る
条件2:ブランコを選んだ場合⇒風を感じながら漕ぐ
条件3:砂場を選んだ場合⇒砂まみれになる
それ以外の場合⇒帰る

各条件ごとに処理を決めることができます。
フローチャートを簡単に作成しました。


PHPだけではなく多くの言語が上から下へと実行されていきます。
その条件分岐には「☞if文」と「☞switch文」があります。

if/elseif/else

ではif文の説明になります。if文には「if」、「else」、「elseif」があります。
それぞれの書き方を見ていきましょう。

  • ifのみ

一つの条件を満たす場合はこのように記載します。

  • if/else

「else」を書くことで条件を満たさない場合の処理を決めることができます。

  • if/elseif/else

複数の条件を書きたい場合は「elseif」を書きます。

実際に書いてみよう!

先ほどの公園で試して書いてみましょう。

標準入力
標準入力とはキーボードからの入力を意味します。
4行目に「fgets(STDIN)」とありますが、これは標準入力された値を取得することができます。

ではデバッグをしてPHPを実行してみましょう!
デバッグ方法はこちらの緑の「」を押してくださいね!

VSCodeのターミナルで「php sample4.php」を実行していきます。

3つの中から1つ入力して「enter」を押してください。
例はブランコを入力したので、「風を感じながら漕ぐ」が出力されました★

3つ以外のものを入力した場合はelseに入り「帰る」が出力されます。

論理演算子

この条件とこの条件は同じ処理にしたいと思うこともあると思います。
その場合は「or(||)」「and(&&)」「not(!)」を使って複数条件分岐します。

結果
$a or $b $aまたは$bのどちらか、その両方がtrueのときture
$a and $b $aかつ$bがtrueのときtrue
$a  || $b $aまたは$bのどちらか、その両方がtrueのときture
$a && $b $aかつ$bがtrueのときtrue
!$a $aがtureではないときtrue

今回は「||」と「&&」の書き方をご紹介致します。

  • ||

変数はapple×、orange〇で条件を満たしているため「果物です」が出力されます。
※「&&」と書いてしまうと「それ以外です」が出力されます。

  • &&

$ageと$genderはif文の条件に満たしているため「20歳以上の女性」と出力されます。

$age=19に修正したとします。20歳以上という条件に満たしていないため「それ以外です」と出力されます。

ではこれを「||」に変えてしまうと$ageは満たしていないが$genderは満たしているため「20歳以上の女性」と出力されてしまいます。

比較演算子

条件式の中に使用されている比較演算子をご紹介します。
公式ページは☞こちら

 結果
$a == $b $aと$bの値が等しい
$a === $b $aと$bの値が等しく、同じ型である
$a != $b $aと$bの値が等しくない
$a <> $b $aと$bの値が等しくない
$a !== $b $aと$bの値が等しくない、同じ型ではない
$a < $b $aの値が$bの値より小さい
$a <= $b $aの値が$bの値より小さいか等しい
$a > $b $aの値が$bの値より大きい
$a >= $b $aの値が$bの値より大きいか等しい

緩やかな(==)比較と厳密な(===)比較

公式ページに型の比較表がありますので気になる方は☞こちら

「==」と「===」の違いをちょこっと見ていきます。

こちらのコードは数値の3と文字列の3を比較しています。
先ほどの説明でもあった通り緩やかな比較のため実行結果として「true」が出力されます。

厳密な比較(===)にしてみます。

こちらは型が違うため「false」と返ってきます。

以上が比較演算子についてでした。
次はswitch文についてご説明していきます。

switch/case

switch文はif文とは異なった書き方になるので確認してみましょう。
※switch/caseは緩やかな比較となりますので注意が必要です。
書き方は以下の通りです。

break文はswitch文を抜ける処理になります。
breakがないと次のcaseへと処理が続行されてしまうため基本的にはbreak文を書くことを心掛けましょう。

緩やかな比較について

先ほども言いましたが、switch文は緩やかな比較(==)で型までの厳密な比較はしておりません。

例えばこちらを実行すると「処理1です」が出力されます。

厳密な比較をしたい場合はこのように書きます。

型までの比較になり「処理2です」が出力されました。
if文を使うかswitch文を使うかは好みの問題になりますね><

複数条件の書き方

if文と同様にこの条件もしくはこの条件は同じ処理にしたいと思うこともあると思います。
その場合はこのように書きます。

break文を使わずに続けて書きます。
実行結果は「果物です」が出力されます。

実際に書いてみよう!

もうすでにいくつか実装しておりますが、何回も出ております公園の例えで処理を書いてみます。

実行結果はif文となにも変わりません。「砂場」を入力すると「砂まみれになる」がちゃんと出力されます!

まとめ

いかがでしたか?今回は条件分岐や論理演算子、比較演算子についてをまとめました。
次回は無限ループって怖い!☞繰り返し処理についてご紹介します。

最後までお読みいただきましてありがとうございました(^ω^)





ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!


ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

Be the first to comment

Leave a Reply

Your email address will not be published.


*


11 + 16 =