おはようございます、こんにちは、こんばんわ。
フリーランスの薬剤師として生活収入を得ながら、プログラミング言語を勉強している”Yuya Matsuura”と申します。
基本的には、HTML,CSS(SASS),JavaScriptを用いたWebページ制作で現在副収入を得ようとしている最中ですが、
人並みに知識欲はある方なので、平行して複数のプログラミング言語やフレームワークを学習しております。
その中で、今回から【WordPress】などにも採用されている≪PHP≫について、改めて学び始めておりまして、
ブログ記事としてアウトプットすることで知識の定着を狙う
+同じような境遇の方の参考になればと思い、シリーズ化して記事にさせて頂きます。
個人的な目標は”Raravel”(フレームワーク)をサクサク使いこなせるようになりたい!です。
※なお、追々記事でまとめるかは決めかねていますが、ローカル環境構築については今のところ記事にするつもりはないので、ご容赦ください。
アウトプット方式なので、記事としては見難いかも知れませんが、ご参考になれば幸いです。
それでは本文をどうぞ!
PHPにも【配列】がある
私も含めてですが、HTML, CSS, JavaScriptから学んだ方は【配列】や【オブジェクト】と聞くと、
何となく察しがつくとは思いますが、データを格納する技法になります。
まずは【配列】について学んでいきましょう。
基本的にJavaScriptの書き方と同じ!
前パートで変数について学んだと思いますが、$変数名 = に続いて、[ ]; 内に複数の値を渡していきます。
<?php
$names = ['Yamada', 'Tanaka', 'Sakamoto', 'Saito'];
?>
先にJavaScriptを学習している方であれば、配列の書き方は同じと気付くと思います。
この時、配列の中に記述した各「値」は”要素”と呼ばれます。
そして・・・察しの良い方は分かると思いますが、この各要素には【インデックス】と言う数字が振られています。
配列の中に記述した”要素”には”インデックス”と言う数字(番号)が振られる
JavaScriptと同じですね!
指定の要素のみを取り出す(JavaScriptと同じ考え)
2番目の’Tanaka’と言う要素のみ、echo文で出力したい! と言う例にします。
これも考えは同じです。
上記例では、$names には 4つの要素が配列として格納されています。
そして、前から順番に「0」「1」「2」「3」と言う数字が振られているので、
‘Tanaka’を呼ぶにはインデックス「1」を指定してechoしましょう!
<?php
$names = ['Yamada', 'Tanaka', 'Sakamoto', 'Saito'];
echo $names[1];
?>
ローカルのブラウザには「Tanaka」と出力されたかなと思います。
連想配列(≒オブジェクト?)を学ぶ
JavaScriptを触ったことがある皆様は、次は”オブジェクト”かな?を予想していると思います。
そして、それはほとんど正解と言えると思います。
ただしニュアンスとしては、「連想配列」と「オブジェクト」は近いものだと思うのですが、
JavaScriptでは【配列】と【オブジェクト】を明確に分けています。
対して、PHPでは「まず【配列】があって、その中の1つの手法に【連想配列】がある」
みたいなイメージを持ちながら、下記のPHPでの書き方(そしてJavaScriptでのオブジェクトとの書き方の違い)を学んでいきましょう!
なぜ”連想配列”が必要なのか?
配列は複数のデータを格納することが出来ます。
そして、上記で学んだように【格納した”各要素”には”インデックス”が振られます】
上記の例のように”name”と言う変数に、[‘Yamada’, ‘Tanaka’, ‘Sakamoto’, ‘Saito’]を格納する場合は、
[‘Yamada’, ‘Tanaka’, ‘Sakamoto’, ‘Saito’] の各々が “name(名前)” なんだなと客観的に理解できると思いますが、
例えば
とした場合は、’yamada’ には「0」 40 には「1」、と言うインデックスが振られるのですが、
<?php
$deta = ['Yamada', 40, 'Kyoto'];
?>
各々の要素が何を意味するかは想像しにくいですよね・・・。
記述側は [名前, 年齢, 出身地] と言う意味を本当は持たせたいとします。
インデックスの代わりに「キー」を持たせる【連想配列】という記述方法
それでは、各要素に「意味(キー)」を持たせていきましょう!
ルールは下記で記しますが、このように記述することが出来ます。
<?php
$deta = ['name' => 'Yamada', 'age' => 40, 'address' => 'Kyoto'];
?>
配列と異なり、JavaScriptと書き方が異なります!!!!!!注意。
書き方① 配列と同じように [] で囲む
書き方② キーも「’ ‘」で囲む
書き方③ キーと値の間に 「=>」 を書く。
先ほど
対して、PHPでは「まず【配列】があって、その中の1つの手法に【連想配列】がある」
と説明させて頂きましたが、連想配列は「あくまでも配列」の1つなので、書き方としては [] で囲む必要があります。
そしてインデックスの代わりとなるキーを記述しなければなりません。
let deta = {
name: "yamada",
age: 40,
address: "Kyoto"
};
一方で、こちらがJavaScriptのオブジェクトの書き方です。
意味合いは同じなのですが、JavaScriptでは配列とオブジェクトは別のものとしてとらえているため、
上記例でも [] ではなく {} で囲っていますね!
同じように指定した要素を取り出す
連想配列の値の取り出し方は、配列と同様の手法です。
[] 内には、インデックスの代わりにキーを指定して”echo”してみましょう!
<?php
$deta = ['name' => 'Yamada', 'age' => 40, 'address' => 'Kyoto'];
echo $deta['address'];
?>
ローカルブラウザには「Kyoto」と表示されると思うので試してみてください。
ちなみにキーは必ず「’ ‘」で囲いましょう。
まとめ
以上がPHPでの配列と連想配列の考え方と書き方になります。
JavaScriptと比べる事で同じ部分や違う部分を比較できるので、
双方の再学習になりますでしょうか??
次回は【if文】について、まとめていきたいなと思ってます。
では!次回の記事で。
コメント