if([条件式1]){
//条件1がtrueの時の処理
}elseif([条件式2]){
//条件2がtrueの時の処理
}else{
//どの条件もfalseの時の処理
}
以下コードの例です。
$a = 80;
if($a >= 100){
echo '$aは100以上です';
}elseif($a >= 50){
echo '$aは50以上です';
}else{
echo '$aは50未満です';
}
if文は「{}」を使わない書き方があります。
HTMLの中にPHPを埋め込む際には次の書きかたの方がコードが見やすくなります。
if([条件式1]): ⇐コロン
//条件1がtrueの時の処理
elseif([条件式2]): ⇐コロン
//条件2がtrueの時の処理
else: ⇐コロン
//どの条件もfalseの時の処理
endif; ⇐セミコロン
switch([$変数]{
case [値A]:
//$変数の値が値Aの時の処理
break
case [値B]:
//$変数の値が値Bの時の処理
break
default:
//上記caseに合致しない時の処理
}
※「break」が無いと合致したcase以降の処理を全て実行してしまいます。
以下のように変数のみを条件式とした場合の動作についてです。
$a = 3;
if($a){ ⇐$aは「数値型」で「0以外」の数値なので「true」
//処理
}
↑のように書く場合もあるかと思うので下の表を覚えておくと便利です。
true | false | |
数値型 | 0以外 | 0 |
文字列型 | 空でない時 | 空の時 |
配列型 | 要素数1以上の時 | 要素数0の時 |
プログラムを強制終了するコードは条件分岐と一緒に使う機会が多いと思うので、一緒にまとめます。
プログラムを強制終了させるにはexitもしくはdieを使います。
exitもdieも同じ動作をするのでどっちを使ってもOKです。
終了時のメッセージを返さないこともできるexit命令を使った方が無難かもしれません。
exit; //終了時のメッセージを返さず終了
exit('終了時のメッセージ'); //終了時のメッセージを返す
※終了時のメッセージ有りの場合、終了メッセージが数値か文字列かによって動作が変わります。
数値の場合 :何も出力しない
文字列の場合:その文字列を出力する
die(‘終了時のメッセージ’);
returnは関数の中で使います。returnが呼び出された行で処理が終了し、関数の呼び出し元に戻り値を渡します。
return; //戻り値無しで処理を終了
return '処理終了!'; //戻り値を設定して処理を終了
配列、連想配列、オブジェクトの全要素をループする処理です。
foreach($arr as $val){
echo $val
}
※参照渡し:元の配列の値を書き換えられます。
foreach($arr as &$val){
$val = "値";
}
unset($val); ⇐必ず記述する
foreach($arr as $key => $val){
echo "キー:{$key}、値:{$val}";
}
※参照渡し:元の配列の値を書き換えられます。
foreach($arr as $key => &$val){
$val = '値';
}
unset($val);
foreach($obj as $val){
echo $val->name;
}
foreachもif文同様に「{}」無しの書き方があります。
HTMLにPHPを埋め込む際には「{}」無しの方がコードが見やすくておすすめです。
foreach($arr as $val):
echo $val;
endforeach;
任意の回数ループする処理です。
以下がforループの記述例です。
for($i = 0; $i < 5; $i++){
echo "{$i}回目のループです";
}
for($i = 0; $i < 5; $i++):
echo "{$i}回目のループです";
endfor;
任意の条件を満たす限りループする処理です。
以下がwhileループの記述例です。
$num = 100;
while($num < 200){
echo $num, PHP_EOL;
$num += 30;
}
$num = 100;
while($num < 200):
echo $num, PHP_EOL;
$num += 30;
endwhile;
ループ中にループを中断したり、次のループに移りたくなることは多いと思います。
そのための命令のbreakとcontinueについてです。
・break :強制的にループを抜ける
・continue:強制的に次のループに移る
breakの記述例は以下です。
for($i = 0; $i < 5; $i++){
if $i == 3{
break ⇐$iが3になったらループを抜ける
}
echo $i, PHP_EOL;
}
continueの記述例は以下です。
for($i = 0; $i < 5, $i++){
if $i == 3{
continue; ⇐$iが3の時はechoせず次にループに移る
}
echo $i, PHP_EOL;
}