PHPでGET/POSTメソッド、そして連想配列

Filed under PHP
Tagged as

なんだかんだで2ヶ月前のこのエントリ以来PHPのエントリを書いていない。
実際、今月頭にPC環境の移行をしてからついこないだまでPHPを入れてすらいませんでした。
と、まぁ、こんな感じで、ゆるーくPHPのメモを書いてみます。世の中にPHPドキュメントはごまんとあるので、あくまで自分向けのメモとなります。

GET/POSTメソッドの値を受け取る手順

PHPでGET/POSTメソッドで渡された値を受け取るのは簡単で、1行で説明できます。

  • $_GET, $_POSTという連想配列に値が格納されている。

終わり。
超シンプルなサンプルは次のようになります。

1
2
// hoge.php?foo=bar&foo2=barbar
echo $_GET["foo2"]; // →"barbar"

GET or POST?

値の受け渡しがGETメソッドなのか、POSTメソッドなのかは、$_SERVER[‘REQUEST_METHOD’]という変数に格納されているようです。

1
2
3
4
5
6
7
8
9
$req_method = $_SERVER['REQUEST_METHOD'];
if( $req_method == "GET" ){
  // GETメソッドへの対応.
  echo "check for GET<br>\n";
}
else{
  // POSTメソッドへの対応.
  echo "check for POST<br>\n";
}

連想配列をまわす-foreach

$_GET、$_POSTというのは連想配列な訳ですが、PHP初心者的には、この連想配列の中身を調べる手順の方が重要なメモとなります。
PHPにはいろいろと便利そうな関数が用意されているようですが、foreachで回すのがおそらくシンプルで覚えやすい方法なので、まずはforeachで回してみます。

1
2
3
4
5
6
7
8
// 通常の配列.
foreach($normal_array as $value){
  echo "$value<br>\n";
}
// 連想配列.
foreach($_GET as $key => $value){
  echo "$key -- $value<br>\n";
}

連想配列をまわす-while

whileで回す方法もあったのですが、これは一見して意味が分かりにくい。each関数で処理するようですが、メモ程度に押さえておくだけにしよう。

1
2
3
4
5
6
7
8
// 通常の配列.
while($value = each($normal_array)){
  echo "$value<br>\n";
}
// 連想配列.
while(list($key, $value) = each($_GET)){
  echo "$key -- $value<br>\n";
}

連想配列をまわす-その他

PHPには他にも配列操作用の関数があれこれ用意してありますが、まぁ、無理して使うこともなさそうな気がします。一応、便利な使い道もありそうなarray_walkだけはメモしておく。

1
2
3
4
function print_values( $value, $key ){
  echo "$key -- $value<br>\n";
}
array_walk( $_GET, 'print_values' );

今日はここまで。

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)