「PHP」の「配列・連想配列」と「スーパーグローバル」変数を勉強しよう!!
PHPでの「配列」「連想配列」の機能や「多次元配列」について勉強していきたいと思います。
「まとめてデータを扱うことができる」機能ですが、「データ型」について柔軟性のあるPHPで配列を利用する方法とWEBアプリケーションでよく利用される「2次元配列」についても使い方を身に付けたいと思います。
他にも配列を便利に利用できる「関数」の使い方を見ていきましょう。
「配列」の作り方
配列を作るためには、
配列変数名 = array(値1, 値2・・・);
のように書いていくことで、配列を作ることができます。
配列を利用したプログラムを、
<?php $ramens = array('味噌','醬油','とんこつ','塩','鶏ガラ'); ?> <!DOCTYPE html> <head> <meta charset="utf-8"> </head> <body> <h1>ラーメンメニュー</h1> <ul> <?php foreach( $ramens as $ramen ){ ?> <li><?php print $ramen; ?>ラーメン</li> <?php } ?> </ul> </body> </html>
のように作ってみました。
このプログラムを実行すると、
のように表示されます。
「連想配列」の作り方
「連想配列」は、「キー」と「値」をセットで格納できる機能です。
プログラムを書く際には、
連想配列変数名 = array( 'キー名1 => '値1', 'キー名2 => '値2' ・ ・ );
のように書いていきます。
「連想配列」を利用したプログラムは、
<?php $favorite = array( '一番好きなドリンクの種類' => 'フルーツ系炭酸飲料', '一番好きなお菓子の種類' => 'スナック菓子', '趣味' => 'ゲーム' ); ?> <!DOCTYPE html> <head> <meta charset="utf-8"> </head> <body> <h1>好きなもの一覧</h1> <ul> <?php foreach( $favorite as $type => $content ){ ?> <li>「<?php print $type; ?>」は、「<?php print $content; ?>」です。</li> <?php } ?> </ul> </body> </html>
のように作ってみました。
ブラウザの実行結果を見てみると、
のようになります。
「好きなものの種類」と「好きなもの」をセットで管理できるのは便利ですね。
「種類の違うもの」を管理するためにはかなり良さそうです。
実際の使い方をエンジニアさんに聞いてみたいのですが、「値の受け取りとかかな~よく使うけどね。」と教えてもらいました。
前に出てきたあれですね。
「$_GET」とかで受け取るやつ。
でも、「値の受け取り」の仕組みはまだわかっていません。
ここで、そろそろちゃんと勉強していきたいと思います。
多次元配列
「多次元配列」は、「配列の中に配列を入れることができる仕組み」なのですが、
array( array(要素1, 要素2・・・) );
のように書くことで、配列の中にどんどん配列を入れていくことができます。
ただ、あまり深い配列は使わないとのことで、「2次元配列」について学んでいきたいと思います。
そして、「サンプルプログラム」を作ってみました。
<?php $seiseki = array( array( '生徒id' => 1, '国語' => 82, '数学' => 91, '英語' => 80 ), array( '生徒id' => 2, '国語' => 73, '数学' => 81, '英語' => 95 ), array( '生徒id' => 3, '国語' => 85, '数学' => 71, '英語' => 81 ) ); ?> <!DOCTYPE html> <head> <meta charset="utf-8"> </head> <body> <h1>生徒の成績一覧</h1> <?php foreach( $seiseki as $student ){ ?> <ul> <?php foreach( $student as $type => $content ){ ?> <li>「<?php print $type; ?>」は、「<?php print $content; ?>」です。</li> <?php } ?> </ul> <?php } ?> </body> </html>
このプログラムを実行すると、
のように表示され、「配列の要素」がすべて出力されています。
「foreach」文を2回ループさせないといけないので、配列の多次元化が進むと、出力処理も複雑になっていきそうですね。
スーパーグローバル変数
「なんて名前を付けるんだ」と思ったのが素直な印象。
「スーパー」でなおかつ「グローバル」な変数だなんて、さぞかしスゴイ機能を持っている変数なんだろうなと、名前から勝手に推測してしまいます。
この変数は、PHPが勝手に作ってくれて、なおかつ「どこからでも使える変数」とのことで、いろんな情報が詰まっているので、「情報の宝庫」的な変数のようです。
「スーパーグローバル変数」の詳しい中身は、
に書いてありました。
1つ1つの中身を見ていたら、よくわからなくなってきたので、エンジニアさんに聞いてきました。
「$_GET」というのは、「GET」という方法で送られたデータを受け取ることができて、もう一つ「$_POST」というものがあり「POST」という方法で送られたデータを受け取る際に利用するそうです。
そもそも「GET」と「POST」の意味がよくわからないので、結局「へぇ~」という感じで話があまりできませんでした。
自分で調べてみると、そもそも、インターネットの通信規約の「HTTP」という方法が関連しているみたいです。
URLに書いているあれだ。くらいしかわからないので、「GET」「POST」を使うことで、サーバーにデータを送ることができるらしい。
この2つの違いを調べてみると、
「GET」はURLの最後に「送信データ」を追加してから、サーバーにデータを送るらしく、「POST」はURLには「送信データ」は追加されない、という違いがあるそう。
安全性を考慮して「POST」を利用する方がいいみたい。
そこはなんとなくわかるな~「送ったデータが見えてしまう」っていうところが良くない。
まだまだいろんな「スーパーグローバル変数」があるので、少しずつ調べながら使っていきたいと思います。
→(前へ)「PHP」の「条件分岐」と「繰り返し」の書き方を学ぶ