CakePHP5入門【PHP言語の文法編①】変数と配列
B美
まずは準備ね
デスクトップ上にある「bimiのホーム」をダブルクリックして開きます
(「bimi」の部分はそれぞれ自分のユーザ名に置き換えてね)
B美
A子
B美
そしたら、「テスト」の文言を削除して替わりに下記を入力してね
<?php
$a = 2; $b = 3; $c = $a + $b; echo $a."足す".$b."は".$c; ?> |
C菜
B美
A子
C菜
これって「a」や「b」や「c」が数値データの入れ物ってことじゃないですか~?
B美
プログラムではデータの入れ物のことを「変数」と呼ぶんだけど、PHP言語における変数は必ず「$」で始まると決まってるのよ
C菜
B美
「等しい」は「==」で表現するの
一文字の「=」は代入演算子よ
A子
B美
「右辺」の値を「左辺」の変数へ入れることを「代入」と言うのよ
あ、「右辺」が変数だったり、式だったりするかもしれないけど、評価後は必ず値になるわ
(値でなければ変数には入れられないからね)
C菜
A子
B美
画面表示は「echo」でも「print」でもどっちでも良いわよ(違いはあるんだけど…)
なお、「"」で挟んだものは「文字列」、文字列同士や変数の値を連結するのが「.」よ
それを前提に考えてみれば分かるんじゃない?
echo $a."足す".$b."は".$c; |
「$a」が「2」、「$b」が「3」、「$c」が「5」に置き換わるとして、それらを連結すると…?
C菜
A子
たしかにそれほど難しくはないかな
B美
PHPには通常の「配列」と「連想配列」の二種類があるの
さっきの「test1.php」の「<?php」と「?>」の間に次のコードを入力してから、「test2.php」というファイル名で保存してね
<?php
$array = [1, 2, 3, 4, 5]; $hash = ['first' => 'A子', 'second' => 'B美', 'third' => 'C菜']; print_r($array); echo "<br /><br />"; print_r($hash); ?> |
「Firefox ESR」のURL欄に「localhost/test2.php」を入力して確認すると…
↓
A子
$arrayの[0]番目には「1」が入っていて、[4]番目には「5」が入ってるってこと?
C菜
$hashの[first]番目には「A子」、[second]番目には「B美」という文字が入ってるってことでしょうか~?
B美
print_r関数で連想配列の内容を表示するときって、キーワードを囲む「'」が表示されないの
だから正確には、$hashの['third']番目に「C菜」という文字列が入ってるって表現すべきね
検証のためにさっきの「test2.php」に追記してみましょう
<?php
$array = [1, 2, 3, 4, 5]; $hash = ['first' => 'A子', 'second' => 'B美', 'third' => 'C菜']; print_r($array); echo "<br /><br />"; print_r($hash); echo "<br /><br />"; echo '配列「$array」の[2]番目の値は'.$array[2]; echo "<br /><br />"; echo '連想配列「$hash」の'."['third']番目の値は".$hash['third']; ?> |
上書き保存したらブラウザで確認してみてね
↓
A子
B美
「"」で挟まれた文字列中に「$」で始まる変数・配列・連想配列があると、その値を文字列の中に埋め込もうとするのよ
「'」の場合は、それ(変数展開)が無いってわけ
echo '連想配列「$hash」の'."['third']番目の値は".$hash['third']; |
において、最初の「'連想配列「$hash」の'」では$hashが展開されないように「'」で挟んでいるのよ
んで、二番目の「"['third']番目の値は"」の部分が「"」なのは、['third']のところで「'」を使っちゃってるからね
C菜
echo '連想配列「$hash」の'."['third']番目の値は$hash['third']"; |
でも良いんですか~?
B美
その場合は
echo '連想配列「$hash」の'."['third']番目の値は{$hash['third']}"; |
というふうに波カッコ「{}」で囲むか
echo '連想配列「$hash」の'."['third']番目の値は$hash[third]"; |
って感じで、キーワードに「'」を付けないのよ
A子
てか、ややこしい!
B美
文字列や値を連結したい場合は「.」でつなげるほうが良いと思う
(まぁ、好き好きだけど…)
あと、普通の変数を「"」内に入れる場合も注意が必要なのよね
変数名の後ろにスペース(空白文字)を入れるか、波カッコ「{}」で囲むかをしないといけないわ
C菜
A子
面倒くさ過ぎる!
B美
まとめると…
複数の値をひとまとめにして取り扱う手段で、「配列」はキーワードが数字(「添字」とか「index」なんて言います)で、「連想配列」はキーワードが文字列ってだけの話ね
あ、「配列」の「添字」は必ず「0」から始まる点に注意してね
C菜
A子
ひとまとめにする理由が今一つ分からないけど(苦笑)
B美
では今回はここまで
次回は「選択」処理を学んでいきましょう