【第八回】PHPでシステム開発を実践!基本的な構文⑤:if文

はじめに

前回の記事では、繰り返し処理や演算子について取り上げました。
繰り返し処理ではカレンダーなど作ることができ、よく使うプログラムです。
今回もよく使う配列やif文について取り上げていこうと思います。

配列

配列とは変数の中に複数の要素を代入する際に使用するものです。
変数については「【第六回】PHPでシステム開発を実践!基本的な構文③」で取り上げていますので、もしよろしければご覧ください。

これまで変数に代入してきたものは1つでしたが、複数代入することも可能です。
まずは簡単なプログラムを組んでいきます。

——————
<?php
$fruits = [‘りんご’,’みかん’,’バナナ’];
foreach($fruits as $fruit){
echo $fruit .'<br>’;
}
?>
——————
VSC配列

上記のプログラムを入力しましたら上書き保存をし、ブラウザを更新しますと以下の画像のように「りんご」、「みかん」、「バナナ」と表示されます。
配列ブラウザ確認

こちら意味としましては$fruitsという変数を作り、その変数の中に「りんご」、「みかん」、「バナナ」の3つを代入しています。
ちなみに変数名は分かりやすい名前で命名規則に則っていましたら何でもかまいません。

変数とイコールで繋げています[]部分を配列といいます。
配列内の要素にはインデックスという0開始の番号が左から付けられます。
上記例ですと「りんご」は0、「みかん」は1、「バナナ」は2になります。

今回は変数$fruitsの中に入っている要素を全て表示するためにforeach文を使用しました。
foreach文は、配列の中の要素を1つずつ取り出すといった処理を行いたい時に使います。
形式としましては
——————
foreach(全要素が入っている変数 as 1つずつ取り出す際に入れる変数){
処理
}
——————
となります。
上記の例ですと
——————
<?php
foreach($fruits as $fruit){
echo $fruit .'<br>’;
}
?>
——————
となり、変数$fruitsの中にあります要素の1つを取り出し$fruitに代入し、出力するという処理を繰り返し行っています。

それでは$fruitsの中に入っている要素の1つだけを出力したい場合はどうするかといいますと、こちらの場合はforeach文は使いません。
例えば配列内の最初の「りんご」だけをブラウザ上に表示するとしてみましょう。
配列は0から数えますので、「りんご」は0番目となります。
そこで以下のように入力してみます。
——————
<?php
$fruits = [‘りんご’,’みかん’,’バナナ’];
echo $fruits[0];
?>
——————
VSC配列
上書き保存し、ブラウザで確認してみます。
配列ブラウザ確認
「りんご」だけ表示されていれば正しく動いていることになります。
ちなみに例えば配列の中を1にしますと「みかん」が表示され、2にしますと「バナナ」が表示されます。

配列の[]の中には変数を入れることも出来まして、より複雑なプログラムを組む際はよく使います。

参考:配列
参考:【初心者用】PHPの配列の書き方を解説
参考:foreach

連想配列

配列の[]の中には数値がそれぞれ付けられていましたが、名前を付けたい場合もあります。
その際に使用するのが連想配列というものです。

例えば先ほどの例ですと「りんご」は0、「みかん」は1、「バナナ」は2とインデックスが付けられていましたが、こちらを「りんご」にapple、「みかん」にorange、「バナナ」にbananaと付けた方がどの要素を表しているのか分かりやすいです。
連想配列では、このように名前を決めて、その名前で取り出すことが出来ます。

以下のような形式で定義します。
式の中にあるarrayとは配列を意味しています。
——————
変数 = array(“名前”=>”要素”,”名前”=>”要素”,…);
——————
例えば先ほどの例を連想配列で組んでみましょう。
——————
<?php
$fruits = array(“apple”=>”りんご”,”orange”=>”みかん”,”banana”=>”バナナ”);
echo $fruits[“apple”];
?>
——————
VSC連想配列
上書き保存をし、ブラウザで表示を確認してみましょう。
連想配列ブラウザ確認
「りんご」と表示されていましたら正しく動いています。

こちらもforeach文で配列の中に入っている全ての要素を表示させることも可能です。
先ほどの形式とは一部違うのですが
——————
<?php
$fruits = array(“apple”=>”りんご”,”orange”=>”みかん”,”banana”=>”バナナ”);
foreach($fruits as $english => $japanese){
echo $english;
echo $japanese .'<br>’;
?>
——————
と配列の形式に合わせた書き方に少し変えています。
こちらも入力してみましょう。
VSC連想配列
上書き保存し、ブラウザで表示を確認してみます。
連想配列ブラウザ確認
配列の中に入っている全ての要素が表示されていましたら正しく動いていることになります。

今回は3つの要素を例に取り上げましたが、お客様の情報や都道府県など実際は多くのデータを扱うことが多いです。
その際にこちらの連想配列を使うと、とても便利です。
こちらも良く使いますので、覚えておきましょう。

参考:PHPで連想配列を使う方法【初心者向け】

if文

次はif文という構文についてです。
ifとは英語ですと「もし〇〇なら××だ」という意味になりますが、プログラムの世界でも同じ意味で使われます。
ただ書き方がそれぞれ決まっていまして、そちらに関しては当たり前ですが英語とは違います。

if

まずは形式がありまして
——————
if(条件){
処理
}
——————
となります。
こちらで「条件」に合ったものだけに処理が行われます。
例えば以下のように入力してみましょう。
——————
<?php
$number = 40;
if($number<=50){
echo ’50以下です。’;
}
?>
——————
VSCif文
上書き保存し、ブラウザで表示を確認してみます。
if文ブラウザ確認
「50以下です。」と表示されていれば正しく動いています。

上記の例ですと最初に変数$numberに40という値を代入しています。
そしてif文の条件には、$number<=50とあり$numberの値が50以下の時に処理を実行するようにしています。
$numberに代入されている数値は40ですので、処理が実行され「50以下です。」と表示されました。

では$numberに60を代入したらどうでしょうか?
ブラウザで表示を確認してみますと何も表示されないかと思います。
こちらは条件に合わなかったため処理が行われず何も表示されない状態になっています。
では、条件から外れた場合の処理はどのように行えばいいでしょうか。

else

ここで使用するのがelseです。
形式は
——————
if(条件){
処理
}else{
処理
}
——————
となります。
ifの条件に合わなかった場合にelse以降の処理が実行されます。
例えば以下のように入力してみます。
——————
<?php
$number = 60;
if($number<=50){
echo ’50以下です。’;
}else{
echo ’50より大きいです。’;
}
?>
——————
VSCif、else文
上書き保存し、ブラウザで確認してみます。
if、else文ブラウザ確認
$numeberに60を代入しているのでifの条件式には合わずelse以降の処理が行われました。
そのためブラウザに「50より大きいです。」と表示されていましたら正しく動いています。

英語のelseは「その他」という意味があり、プログラムでも同じ意味で使われます。
ifの条件式に合わなかった場合の処理を指定するために使います。

elseif

では条件式を複数指定したい場合は、どのようにするべきでしょうか。
ここで使うのがelseifです。
形式は
——————
if(条件1){
処理
}elseif(条件2){
処理
}else{
処理
}
——————
となります。
定義したものがifの条件に合えばif内の処理が行われ、条件が合わなければ次にelseifの条件で判断されます。
もしelseifの条件に合えばelseif内の処理が行われ、条件が合わなければ最終的にelse以降の処理が行われます。
例えば以下のように入力してみます。
——————
<?php
$number = 90;
if($number<=50){
echo ’50以下です。’;
}elseif($number<100){
echo ’50より大きく100より小さいです。’;
}else{
echo ‘100以上です。’;
}
?>
——————
VSCifelse文
上書き保存し、ブラウザで表示を確認してみます。
ifelse文ブラウザ確認
上記の例では$numberに90が代入されているため最初のifに指定されている条件には合わず、次のelseifの条件に合いましたので「50より大きく100より小さいです。」が表示されていれば正しく動いていることになります。

ちなみにelseifは複数使用することが出来ますので、条件をさらに増やしたいということであればその分elseifを追加し処理を指定することが出来ます。
if文もよく使いますので、覚えておきましょう。

「かつ」と「または」

if文に条件を指定する際、ここまで出てきた例では1つの式だけを指定していましたが「〇〇かつ△△を満たす場合」や「××または●●を満たす場合」など1つの式では条件を表せないことがあります。
その際に使用するのが論理演算子というものです。

まず「条件1かつ条件2」のように指定したい場合は、’かつ’を意味する&&を使います。
「条件1 && 条件2」というように指定しますとその条件に合った処理を行うことが出来ます。

次に「条件1または条件2」のように指定したい場合は、’または’を意味する||を使います。
「条件1 || 条件2」というように指定しますと条件に合った処理を行うことが出来ます。

例えば「変数に代入されている数が、50以下または100以上の場合」という条件を指定する際は、
——————
<?php
$number = 110;
if($number<=50 ‖ $number<=100){
echo ’50以下または100以上の数です。’;
}
?>
——————
となります。
こちらの場合ですと変数$numberに代入されている数は110となりますので、条件に合いブラウザに「50以下または100以上の数です。」と表示されます。

このような論理演算子もよく使いますので、覚えておきましょう。

参考:複数の条件分岐(if..elseif..else)
参考:論理演算子(if..elseif..else)

まとめ

今回は配列やif文というとてもよく使うプログラムを取り上げました。
覚えることが多く、まだプログラムの組み方も慣れないかと思います。
ゆっくりでいいので基本的なところだけでも何度もプログラムを組んでみて慣れていきましょう。

今回取り上げました配列とif文を組み合わせて、より複雑なプログラムを組むことも多いです。
どのような流れで処理が行われているのか意味を理解できるようにしていきますとどのような時に使う構文かすぐ出てきやすいかと思います。
そのためにも簡単なプログラムでいいので、組んで慣れていきましょう。

この記事をシェアしましょう!