こんにちは!
PHPのLaravelやJavaScriptでWeb開発をしているフリラーンスエンジニアのファドと申します!
こちらの記事はPHP教材の第3回目の記事になります。
その他のPHP教材を学習したい方は下記リンクから直接教材へ飛ぶことができます。
条件分岐について(if & switch)
フォルダ名:「if_switch」
このレクチャーでは条件分岐について説明していきます。
条件分岐とは、ある条件が満たされているかどうかによって、次に実行するプログラムを変化させることです。
- もし、変数の中身が1だった場合は、処理Aを実行する。
- もし、変数の中身が1以外だった場合は、処理Bを実行する。
といったように、もしという言葉がキーワードになります。
if文
PHPで条件分岐を実装する場合、if文が一番良く使われています。
if文の書き方は、下記の通りです。
if (条件式) {
// trueの場合の処理を記述
}
条件式なので、最初はtrue
かfalse
が返ってくるような比較演算子や等価演算子を使った式を入れてあげるといいでしょう!
例えば、12 < 100
であれば、12は100より小さいのでtrue
が返ってきますね!
ということは、if文の中の処理が実行されることになります。
if文には、elseif
やelse
というものが存在しています。
- elseif:もし他の場合だった時など、別の条件分岐を作成することができます
- else:if文の最後に記述し、それ以外だった場合という意味になります。
elseif
やelse
を使用することで、さらに複雑な条件分岐を作ることができます。
elseif
やelse
の書き方は、下記のとおりです。
if (条件式) {
// trueの場合の処理を記述
} elseif (条件式) {
// ifの条件式ではfalseだが、else ifの条件式ではtrueだった場合の処理を記述
} elseif (条件式) {
// else ifは何個でも記述可能
} else {
// if、elseifのどれにも当てはまらなかった時の処理を記述
}
書き方が何となくわかってきたと思うので、実際にコードで確認していきましょう!
index.php
を下記の通り編集してください。
<?php
$num = 15;
if ($num < 5) {
echo "numは5より小さい";
} elseif ($num < 20) {
echo "numは20より小さい";
} elseif ($num < 30) {
echo "numは30より小さい";
} else {
echo "それ以外";
}
ブラウザで確認しましょう!numは20より小さい
が出力されていればOKです。
このコードを詳しく見てみましょう。$num = 15
では、変数numが数値の15であると定義しています。
そして、最初の条件である$num < 5
ですが、15 < 5
という意味なので、false
です。
そのため、ブラウザにnumは5より小さい
と出力されることはありません。
次の条件である$num < 20
ですが、15 < 20
という意味なので、true
になります。
ということで、ブラウザにはnumは20より小さい
が出力されます。
if文では、条件に当てはまるものがあった場合は、その後のコードは実行されません。
そのため、次の条件である$num < 30
もtrue
にはなりますが、ブラウザにnumは30より小さい
が出力されることはありません。
したがって、var_dump(“numは20より小さい”);
のみが実行されたことになります。
また、条件式に数値や変数、空文字(””)、空配列([ ])を入れることもできます。
1や1.0はtrue
、0と0.0はfalse
、空文字(””)はfalse
、空配列([ ])はtrue
など、間違えやすいものも多いので気を付けましょう。
if文と論理演算子
演算子についてのレクチャーで算術演算子や代入演算子、比較演算子などを学びましたが、今回はif文と相性バツグンの論理演算子について学んでいきます。
論理演算 | 説明 |
論理積(AND) | A && B 「AかつB」 |
論理和(OR) | A || B 「AまたはB」 |
否定(NOT) | !A 「Aではない |
&&(論理積)
<?php
var_dump(12 < 100 && 50 > 12);
// bool(true)
var_dump(12 <= 100 && 11 >= 12);
// bool(false)
var_dump(12 > 100 && 50 > 12);
// bool(false)
var_dump()
の後のコメントアウトは、全て実行結果です。&&
を挟んでいる両方の条件式がtrue
であればtrueを返します。
||(論理和)
<?php
var_dump(12 < 100 || 50 > 12);
// bool(true)
var_dump(12 <= 100 || 11 >= 12);
// bool(true)
var_dump(12 > 100 || 50 < 12);
// bool(false)
var_dump()
の後のコメントアウトは、全て実行結果です。||
を挟んでいる両方の条件式でどちらか片方でもtrue
であればtrueを返します。
<?php
var_dump(!true);
// bool(false)
var_dump(!false);
// bool(true)
var_dump()
の後のコメントアウトは、全て実行結果です。!
が付いていた場合、true
とfalse
を逆の意味で返します。
if文の中で論理演算子を使う
使い方の説明は終わったので、いよいよif文の中で論理演算子を使ってみましょう!
index.php
を下記の通り編集してください。
<?php
// これはtrueだよ!が出力される
if (12 < 100 && 50 > 12) {
echo 'これはtrueだよ!';
}
// これはelseifのtrueだよ!が出力される
if (12 > 100 || 50 < 12) {
echo 'これはtrueだよ!';
} elseif (12 < 100 || 50 > 12) {
echo 'これはelse ifのtrueだよ!';
} else {
echo 'これはelseだよ!';
}
// これはelseだよ!が出力される
if (!true) {
echo 'これはtrueだよ!';
} else {
echo 'これはelseだよ!';
}
各if文で条件に当てはまる文字列が1つずつ出力されています。
条件式の中身も皆さん自身で確認してみてくださいね!
switch文
if文以外にも、switch文でも条件分岐をさせることができます。
switch文の書き方は、下記の通りです。
<?php
switch (式) {
case 値1:
// 式と値1が等しい時の処理
break;
case 値2:
// 式と値2が等しい時の処理
break;
default:
// それ以外の場合の処理
}
式には変数などを入れることが多いです。
その式とcaseの後に記述されている各値とが等しいかを判断し、等しかった場合は処理を実行します。
処理を実行した後は、break;
と記述することで、そのswitch文を終了させます。
このbreak;
を書き忘れると、次のcase処理を続けて実行してしまうので注意してください。
index.php
を下記の通り編集してください。
<?php
$text = '青';
switch ($text) {
case '赤':
echo '横断禁止';
break;
case '青':
echo '横断可能';
break;
default:
echo '止まれ';
}
ブラウザで確認してください。横断可能
と出力されていればOKです!
変数text
は文字列の青
が格納されているので、case '青':
と合致します。
そのため、そのcase '青':
文以下での処理が実行されたため、ブラウザには横断可能
が出力されます。
★検索ワード
・PHP if文 使い方
・PHP switch文 使い方
・PHP 論理演算子 使い方
繰り返し処理について
フォルダ名:「loop」
今回のレクチャーでは、繰り返し処理について学んでいきたいと思います。
繰り返し処理を簡単に説明すると、同じことを何回もプログラミングを通じて実行させることです。
例えば、「プログラミングという文字列をブラウザに100万回出力してください。」という課題があった場合、皆さんならどうしますか?
echo 'プログラミング';
を100万回記述しますか?
そんなことをやるのは現実的ではないですよね?
そういう場面で役に立つのが、繰り返し処理なのです。
for文
もっとも繰り返し処理の中で一般的なのが、この「for文」です。
for文の書き方は、下記の通りです。
<?php
for (初期値; 条件式; 増減式) {
繰り返し処理
}
難しい言葉がたくさん並んでいるので、コードを使って確認していきましょう。
まずは、index.php
を下記の通り編集してください。
<?php
for ($i = 0; $i < 10; $i++) {
echo $i;
}
ファイルをブラウザで確認し、下記画像のように表示されていれば、OKです!
上に書いてある「for文の書き方のコード」と見比べながらコードの中身を詳しく見ていきましょう!
初期値には$i = 0;
が記述されています。
ここでは、i
という変数を定義して、0を代入しています。
条件式には$i < 10;
が記述されています。$i < 10
がtrue
の場合は、処理を繰り返すことを意味しています。
増減式には$i++
が記述されています。
こちらのコードでは、処理を繰り返すたびに変数iに1を足していくことを意味しています。
この$i++
は、1ずつ足していくということであり、インクリメントと呼ばれます。
一方、$i–-
は、1ずつ減らしていくということであり、デクリメントと呼ばれています。
つまり、1回目にfor文が回る時は、変数iが0なので、$i < 10
がtrue
となり、ブラウザに数値の0
が出力されます。
次に、for文が回る時に、変数iがインクリメントされるので、変数iは数値の1
になります。
数値の1
ということは、$i < 10
がtrue
となるので、ブラウザに数値の1
が出力されます。
これを繰り返していき、最終的に$i < 10
がfalse
となる時に、ブラウザに値が出力されなくなります。$i < 10
の場合、変数iが10
になるとfalse
になります。
なので、ブラウザのを見ると、数値の9
までが出力されています。
どうでしょうか?少し理解できましたか?
JavaScriptと書き方はほとんど変わらないですね。
while文
for文以外にもwhile文を使って繰り返し処理を実装することができます。
while文の書き方は、下記のとおりです。
<?php
while (条件式){
繰り返し処理
}
while文では、条件式がtrue
の場合に処理を実行します。
つまり、もし下記のようなコードを実行してしまうと、無限に処理を繰り返してしまい、PCがフリーズしてしまうこともあります。
そのため、下記のコードは実行しないでください。
もし、実行してしまった場合は、タブを閉じるか、ブラウザを閉じてください。
閉じる過程でフリーズしてしまうかもしれませんが、 もしそうなった場合は、気長に待ちましょう笑
while (true) {
echo "無限ループ";
}
そのため、while文を使うには、処理の中に繰り返し処理が終わる仕組みを記述しておかなければなりません。index.php
を下記の通り編集してください。
<?php
$num = 10;
while ($num > 0){
echo $num;
$num--;
}
ファイルをブラウザで確認し、下記画像のように表示されていれば、OKです!
条件式は$num > 0
なので、変数numが0
より大きければ、処理を実行するようになっています。
また、処理の中で$num--
とすることで変数numがデクリメントされ、1ずつ減っていくように記述されています。
そのため、ブラウザには10から1までが表示されました。
foreach文
配列の要素をまとめて処理したいときに使われるのがforeach文
です。
while文やfor文などと比べて、より簡潔に記述できますので、ぜひマスターしましょう!
foreach文では、配列の各要素に繰り返し(ループ)処理を行うため、while文やfor文のように、繰り返しを終了する条件を記述する必要はありません。
なぜなら、配列の要素がある分だけ繰り返し処理したらループを抜けるためです。
foreach文の書き方は、下記のとおりです。
<?php
foreach (配列の変数; as 各要素が格納される変数;){
繰り返し処理
}
たとえば tests
という変数を作り、これを配列にします。index.php
を下記の通り編集してください。
<?php
$tests = [ '国語', '算数', '理科', '社会' ];
foreach ( $tests as $test ) {
echo $test. '<br>';
}
ファイルをブラウザで確認し、下記画像のように表示されていれば、OKです!
国語、算数、理科、社会と配列testsに含まれていた4つの要素に対して繰り返し処理を実行できました。
繰り返し処理を実装できる構文は、他にもたくさんあります。
PHPを使っているうちに出会うことがあるかもしれません。
その時は、その出会いに感謝して、たくさん調べてあげてください!
★検索ワード
・PHP 繰り返し処理 やり方
・PHP for文 使い方
・PHP while文 使い方
・PHP foreach文 使い方
次の教材
次の教材は下記から簡単に飛ぶことができます!
引き続きプログラミングを楽しんでいきましょう!
プログラミング学習サポートについて
「独学で挫折した。。。」
「一人でのプログラミング学習がしんどい。。。」
「未経験からエンジニア転職をしたいけど何をしたら良いかわからない。。。」
このような悩みをお持ちの方向けに、本教材作成者のファドがMENTAという学習サイトにてあなたのプログラミング学習とエンジニア転職を徹底サポートいたします!
サポート価格はなんと1日あたりたったの約300円!
教材で分からない箇所のサポートはもちろんのこと、本サイトで公開しているすべての課題の解答も公開しております。
また、MENTAで学習を終わらせていただいた方限定で懇意にしていただいている企業さんを紹介することもあります!
なお、サポート内容の詳細は下記の通りです。
- 目標設定
- マインドセット
- オリジナル教材見放題
- オリジナル課題見放題
- オリジナル課題の解答見放題
- 課題コードレビュー
- 教材への無制限質問
- 課題への無制限質問
- ポートフォリオ作成アドバイス
- 褒めのコーチング
いくつかのプランを用意させていただいておりますので、下記より一度ご覧ください!
コメント