PHP8技術者認定初級試験取得を目指しています🔰
公式の認定教材である独習PHP第4版での学習のアウトプット用の記事です。
データ型の分類
- スカラー型・・・1つの変数に1つの値だけを扱う(論理型、整数型、文字列型など)
- 複合型・・・複数の値をまとめて扱う(配列型、オブジェクト型など)
- 特殊型・・・上記どちらでもないもの(リソース型、ヌル型)
の3分類ができる。
論理型(bool)
true もしくは false で表現される。
PHPでは以下の値をfalseとみなす。
- 空文字、または文字列の0
- 整数型の0
- 浮動小数点型の0.0
- 空の配列
- null
それ以外をtrueとみなす。
整数型(int)
以下に分類される値を扱う。
- 10進数
- 2進数
- 8進数
- 16進数
浮動小数点型(float)
一般的な小数点数だけでなく、指数表現も存在する。
(ちょっと数学弱すぎて指数表現は解説読んでも分からなかった、、、)
文字列型(string)
シングルクォート、もしくは、ダブルクォートで括られた値。
'こんにちは'
"Hello"
シングルクォートの文字列とダブルクォートの文字列は微妙に挙動が違う。
①変数を展開するかどうか
ダブルクォートは文字列に含まれた変数を展開できる。
$title = 'ポケモン'
"これは{$title}です"
// 出力結果
これはポケモンです
②エスケープシーケンスを認識するかどうか
ダブルクォートはエスケープシーケンスを認識できる。
エスケープシーケンス | 概要 |
---|---|
\n | 改行 |
\t | 水平タブ |
\v | 垂直タブ |
これらを認識できるのはダブルクォートのみである。
①と②の理由からPHPでは意図的に①と②にしたい場合以外は、シングルクォートでくくるものとしている。
ヒアドキュメント
文字列型を表す方法としてヒアドキュメントという方法がある。
長い文字列を含む際に適した方法である。
$title = 'ポケモン';
$message = <<< EOD
{$title}は、不思議な生き物と共に冒険を進めていくRPGです。
全部で1008種類もいます。
"かがくのちからってすげー!"
EOD;
print $message;
// 実行
ポケモンは、不思議な生き物と共に冒険を進めていくRPGです。
全部で1008種類もいます。
"かがくのちからってすげー!"
<<<EOD〜EOD;
で囲んだ部分を全て文字列とみなす。
EODの部分は開始と終了が同じであれば、<<<ABC~ABC;
でも構わない。
小文字でも動作するが全て大文字にするのが一般的である。
例えば、
<<<"EOD"
や<<<'EOD'
とすることも可能だが、シングルクォートの場合、先述したように変数が展開されない。