【PHP授業三日目】演算子、制御構文・比較演算子
演算子
●文字列連結代入演算子:「.=」
$text2 = $text2 . 'お正月'; //文字列連結した結果を変数に代入
↓代入演算子で短く記述
$text3 .= 'お正月';
・JSでいう「$text3 += 'お正月'; 」
・HTMLコードを変数に代入しながら作成する際によく使う
●問題
好きな映画を配列で管理
番号付きリストで出力
HTMLコードを$codeに代入してから出力
1.配列作成
$movieList = ['永遠のゼロ', 'アイアンマン', 'パシフィックリム'];
2.$codeにHTMLタグを代入※繰り返し処理
$code = '<ol>';
for ($i = 0; $i < count($movieList); $i++) {
$code .= '<li>' . $movieList[$i] . '</li>';
}
$code .= '</ol>';
3.echoで出力
echo $code;
ソースコードの改行について
●生成されたソースコード見てみる
・ソースコード(整理前)
<ol><li>永遠のゼロ</li><li>アイアンマン</li><li>パシフィックリム</li></ol>
改行されていないので、すごく見ずらい
●「\n」を使い改行
$code = '<ol>' . "\n";
for ($i = 0; $i < count($movieList); $i++) {
$code .= '<li>' . $movieList[$i] . '</li>' . "\n";
}
$code .= '</ol>' . "\n";
※シングルクォート内だと、「\n」が文字列扱いになるので注意!
・ソースコード(整理後)
<ol>
<li>永遠のゼロ</li>
<li>アイアンマン</li>
<li>パシフィックリム</li>
</ol>
●「\n」を「PHP_EOL」にしても改行可能(使用するとスマート)
for ($i = 0; $i < count($movieList); $i++) {
}
比較演算子
●注意:数値型と文字列型の比較
$val = 10;
var_dump($val == '東京'); //false
・数値型と文字列型の比較なので数値型に揃えて確認(2020.09.03時点)
10 == 0 ←false
・PHP8からは数値型での型揃えではなく文字列型に型を揃えて確認になる
'10' == '東京' ←false
if文・論理演算子
●boolval関数
・引数で指定した値を真偽値に変換してくれる
・数値型0は真偽値に変換すると「false」になる
$val = 0;
var_dump($val); ←int(0)
var_dump(boolval($val)); ←bool(false)
if ($val) {
echo 'true';
} else {
echo 'false';
} ←false
元のデータ型 | 元の値 | 真偽値型変換 |
---|---|---|
整数型 | 0 | FALSE |
整数型 | 10 | TRUE |
浮動小数点数型 | 0.0 | FALSE |
浮動小数点数型 | 2.5 | TRUE |
文字列型 | ’'(空文字) | FALSE |
文字列型 | ’0' | FALSE |
文字列型 | ’あいう’ | TRUE |
配列型 | [](空の配列) | FALSE |
配列型 | [10,20] | TRUE |
Null型 | null | FALSE |
switch文
・JSとの違い1つだけある
・JSのswitch文:caseとの値比較に厳密等価演算子を使用
・PHPのswitch文:caseとの値比較に等価演算子を使用
$num = '3';
switch ($num) {
case 1:
echo '1の処理';
break;
case 2:
echo '2の処理';
break;
case 3:
echo '3の処理'; ←表示される
break;
default:
echo '該当なしの処理';
break;
}
※PHP8ではJSと一緒になる