if(){}は()の中の条件が真の時に{}中が実行されます。
条件は真偽(TRUE/FALSE)で判定され、正しいか間違いか、成功か失敗か、を意味します。
<?php
header("Content-type: text/html; charset=shift_jis");
$a=1;
$b='001';
$c=$a;
if($a == 1){echo '$aは 数字の 1 です<br />'."\n";}
if($a != 2){echo '$aは 数字の 2 ではありません<br />'."\n";}
if($b == 1){echo '$bは 数字の 1 です<br />'."\n";}
if($b == '01'){echo '$bは 文字列 01 です<br />'."\n";}
if($c == 1){echo '$cは 数字の 1 です<br />'."\n";}
?>
・サンプルのダウンロードはこちら
※ ソースは右クリックの「名前を付けて保存/対象をファイルに保存」で拡張子の.txtを削除して保存してください
==は左辺と右辺が正しい時に真を返します。$a == 1なら$aは1ですので真となり{}の中のechoによる文字列の表示が行われます。
!=は反対に左辺と右辺が正しくないときに真を返すので、$a != 2は正しくないので真となり、 {}の中のechoによる文字列の表示が行われます。
$bは文字列001ですが数字の1でもあるため、$b == 1は真となります。
$bの文字列は001の為、文字列01とは違い、$b == '01'は偽だと予想されますが、PHPは真を返してしまうので注意してください。
$cは$a参照しており、$aの1が格納されているので、$c == 1は真となります。
if(){}だけでは、条件が真の時しか処理されません。条件が偽となるときに別の処理を行うためにはif(){}〜else{}を用います。
条件を複数組み合わせるときはif(){}eleseif(){}〜else{}を用います。
elseはどの条件にも当てはまらなかったときに処理されるので、()の条件はありません。
<?php
header("Content-type: text/html; charset=shift_jis");
$a=2;
$b='B';
if($a == 1){echo '$aは 1 です<br />'."\n";}
else{echo '$aは 1 ではありませんでした<br />'."\n";}
if($b == "A"){echo '$bは A です<br />'."\n";}
elseif($b == "b"){echo '$bは b です<br />'."\n";}
elseif($b == "B"){echo '$bは B です<br />'."\n";}
else{echo '$bは A b B のどれでもありませんでした<br />'."\n";}
?>
・サンプルのダウンロードはこちら
※ ソースは右クリックの「名前を付けて保存/対象をファイルに保存」で拡張子の.txtを削除して保存してください
$aについては、$a == 1が偽となるため、elseが実行されます。
$bについては途中の条件である$b == "B"が真となり、そこが実行されてそれ以外は無視されます。
条件を複数指定したいときはifとelseの間にelseifを必要な分だけ置くことができます。ifとelseはグループに1つだけです。
条件は複数重ねて置くこともできます。
or また || で繋げるとどちらかが真であればif文としても真になり、and または && で繋げると、すべてが真の時だけif文としても真になります。
<?php
header("Content-type: text/html; charset=shift_jis");
$a='A';
$b='B';
$c='C';
$d='D';
if($a == 'A' && $b == 'C'){echo '1つめ $aが A かつ $bが Cです<br />'."\n";}
if($a == 'A' && $b == 'B'){echo '2つめ $aが A かつ $bが Bです<br />'."\n";}
if($a == 'A' || $b == 'C'){echo '3つめ $aが A または $bが Cです<br />'."\n";}
if($a == 'A' || $b == 'B'){echo '4つめ $aが A または $bが Bです<br />'."\n";}
if($a == 'A' && $b == 'C' && $c == 'C' || $d == 'C'){echo '5つめ $aが A かつ $bが C かつ $cが C または $dが C です<br />'."\n";}
if(($a == 'A' && $b == 'C') || ($c == 'C' && $d == 'C')){echo '6つめ $aが A かつ $bが C または $cが C かつ $dが C です<br />'."\n";}
if(($a == 'A' && $b == 'C') || ($c == 'C' || $d == 'C')){echo '7つめ $aが A かつ $bが C または $cが C または $dが C です<br />'."\n";}
?>
・サンプルのダウンロードはこちら
※ ソースは右クリックの「名前を付けて保存/対象をファイルに保存」で拡張子の.txtを削除して保存してください
1つめと2つめは$aと$bが真の時に処理されます。
3つめと4つめは$aと$bのどちらかが真であれば処理されます。
5つめは$aと$bと$cが真の時の処理されます。
6つめは$aと$bが真であるか、$cと$dが真であれば処理されます。
7つめは$aと$bが真であるか、$cまたは$dが真であれば処理されます。
上記は分かり易く変数の中身を条件に指定しましたが、変数や配列の状態を条件にすることもできます。
<?php
header("Content-type: text/html; charset=shift_jis");
$a='A';
if(isset($a)){echo "\$aは有効です<br />\n";}
if(!empty($a)){echo '$aには'.$a."が格納されています<br />\n";}
if(!is_array($a)){echo "\$aは配列でははありません<br />\n";}
?>
・サンプルのダウンロードはこちら
※ ソースは右クリックの「名前を付けて保存/対象をファイルに保存」で拡張子の.txtを削除して保存してください
isset($a)は変数$aが存在すれば真(TRUE)を返します。
empty($a)は変数$aの中身が空であれば真(TRUE)を返します。$a == ""と同じ。
is_array($a)は変数$aが配列であれば真(TRUE)を返します。
その他にも、真偽(TRUE/FALSE)を返すものであれば条件に指定することができます。
これらは先頭に ! を付けることにより真偽を反対にすることもできます。
ifは条件が真の時に処理される。
ifが偽の時に無条件に処理するにはelseを用い、条件を付け足すのならelseifを用いる。
複数の条件は&&で繋げるとすべて真の場合に処理され、||で繋げるとどれかが真であれば処理される。