【 PHP学習 #5 】 if 文 と 論理演算子

PHP

【 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 文 と 論理演算子 を組み合わせることで、さまざまな状態を判別できることがわかりました。

これを組み合わせて、プログラムすることで、便利なサービスが完成します!