目次
【 PHP学習 #5 】 if 文 と 論理演算子
PHPの学習、第5回は、if文です。
【 if文 】
if (条件) {
条件が真なら実行
}
if文は、分岐のための構文です。
分岐とは「もし〇〇の場合は、×××する」という条件に応じて処理を行うことができます。
▶︎ 書き方
<?php
// if文
$height = 90;
if ($height == 90){
echo '身長は' . $height .'cmです';
}

if (もしも)
$height が 90 と == ( 一致 ) の場合は、
「身長は $height cmです」とechoする
というコードです。
▶︎ 条件
if文の中では、if ( ) の( ) の中で、条件を書きます。
== という書き方が出てきました。
if ($height == 90)
heightが90と一致 ( == ) であれば、
という意味になります。
これが、
if ($height === 90)
=== となると、
型も一致 という意味になります。
先ほどのコードを書き換えてみます。
<?php
// if文
$height = '90';
if ($height === 90){
echo '身長は' . $height .'cmです';
}
$height = '90';
” で囲んだので、90は文字列となります。
if ($height === 90)
=== なので、90という数値と一致という条件になるので、
$height の 中身である文字列の90とは一致しませんから、
ブラウザには、何もechoされません。
基本的に、条件を書くときは、==は使用せずに、===を使うようにしましょう。
【 if 文 else 】
if (条件) {
条件が真なら実行
} else {
条件が偽なら実行
}
▶︎ 書き方
<?php
// if文 else
$height = 90;
if ($height === 91) {
echo '身長は' . $height . 'cmです';
} else {
echo '身長は' . $height . 'cmではありません';
}

if もし
$height が 91 と === ( 一致 ) の場合は、
‘身長は’ . $height . ‘cmです’; とechoする
else そうでなければ
‘身長は’ . $height . ‘cmではありません’; とechoする
というコードになります。
$height = 90 ですから、
echoされるのは、‘身長は’ . $height . ‘cmではありません’; の方になります。
【 if 文 else if 】
条件分岐が3つの時はこのように書きます。
▶︎ 書き方 : 信号機
<?php
// if文 else
$signal = 'red';
if ($signal === 'red') {
echo '止まれ';
} else if ($signal === 'yelllow') {
echo '一旦停止';
} else {
echo '進む';
}
まず、変数 $signal は red です。
$signal = 'red';
もし $signal が red の場合は、 ‘止まれ’ をecho
if ($signal === 'red') {
echo '止まれ';
}
そうでなく、もし $signal がyellow の場合は、‘ 一旦停止 ‘をecho
else if ($signal === 'yelllow') {
echo '一旦停止';
}
それ以外の場合 = 信号の場合は青の場合は ‘ 進む ‘ をecho
else {
echo '進む';
}
という風に、
else if を間に入れることで、条件分岐を加えることができます。
【 if文のネスト 】
if文の中に、if文を入れることで、さらに条件分岐を設定できます。
▶︎ 書き方
<?php
// if文 else
$signal = 'blue';
if ($signal === 'red') {
echo '止まれ';
} else if ($signal === 'yelllow') {
echo '一旦停止';
} else {
echo '進む';
}
echo '<br>';
$speed = 100;
if ($signal === 'blue'){
if($speed >= 90){
echo 'スピード違反';
}
}
下の方の、if文に注目してください。
もしも $signal が blue で、
$speed が 90 以上なら ‘スピード違反’ を echo する
if ($signal === 'blue'){
if($speed >= 90){
echo 'スピード違反';
}
}
$signalと、$speedの値は、
$signal = 'blue';
$speed = 100;
なので、

と、echoされます。
このように、
if文の中に、if文を入れることを、ネストと言います。
【 !! POINT 】 極力 if文 単体で!!
else if や、ネストを使うと、複雑な条件分岐が書けるのですが、
コードが複雑になり、読みにくくなっていきます。
そこで、
極力、if文単体で書くようにします。
先ほどの信号機のコードは、このように書くことができます。
▶︎ 信号機のコード
<?php
// if文
$signal = 'red';
if ($signal === 'red') {
echo '止まれ';
}
if ($signal === 'yellow') {
echo '一旦停止';
}
if ($signal === 'blue' {
echo '進む';
}
このように、if文単体で、各条件を書いて並べることで、コードが見やすくなります。
【 if文 条件分岐 】
▶︎ 「 !== 」 ・・・でない場合
<?php
// if文
$height = 91 ;
if ($height === 90 ){
echo '身長は' . $height . 'cmです';
}
if ($height <= 90 ){
echo '身長は' . $height . 'cmになります';
}
if ($height !== 90 ){
echo '身長は90cmではありません';
}
!== と書くことで、==ではない という条件を指定できます。
($height !== 90 )
つまり、このコードは、
$heightが、90と一致しない場合という条件を設定できます。
▶︎ 「 && 」 aが○○、かつbが○○の場合
// if文 &&
$signal_1 = 'red';
$signal_2 = 'blue';
if($signal_1 === 'red' && $signal_2==='blue'){
echo '赤と青です';
}

この部分で、「&&」という条件が設定されています。
if($signal_1 === 'red' && $signal_2==='blue'){
echo '赤と青です';
}
もし
$signal_1 が、 red
かつ(&&)
$signal_2 が、blue の場合
‘赤と青です’ を echoする
▶︎ 「 || 」 どちらかが真(true)の場合
<?php
// if文 ||
$signal_1 = 'red';
$signal_2 = 'blue';
if($signal_1 === 'red' || $signal_2==='blue'){
echo '赤です';
}

この部分で、「 || 」という条件が設定されています。これは、
「 or 」 の意味になります。
キーボードの「¥」の位置を半角でshiftを押しながら入力します。
if($signal_1 === 'red' || $signal_2==='blue'){
echo '赤です';
}
もし、
$signal_1 が red
または ( || )
$signal_2 が blue
の場合
‘赤です’ を、echoする
【 三項演算子 】 「 ? 」
条件 ? 真 : 偽
条件を判定して、
条件と一致していれば、真を返す
一致していなければ、偽を返します。
▶︎ 書き方
<?php
// if文 三項演算子
$math = 81;
$comment = $math > 80 ? 'good' : 'not good' ;
echo $comment
この部分が、三項演算子です。
$comment = $math > 80 ? 'good' : 'not good' ;
変数 $comment は
$math が 80以上 という条件が
真なら ‘good’
偽なら ‘not good’
を返す
そして、返ってきた値を、echoする
echo $comment;
というコードです。
$math = 81;
ですから、
$math > 80 という条件を満たすので、返されるのは、
真となり、‘good’ になります。
【 まとめ 】
if 文 と 論理演算子 を組み合わせることで、さまざまな状態を判別できることがわかりました。
これを組み合わせて、プログラムすることで、便利なサービスが完成します!