$_GET パラメータ有無判定 [┣ PHPめも]
phpを学習中…というか、イタズラ中。
仕事でも使っているけど…いや、いくつか作っちゃってるけど…でも、かなりまだ怪しい。
…とっても怪しい。(ーー;)
調べながらな、今日この頃です。
突っ込みお待ちしてます。(^^;)
本日のテーマ。
URLにパラメータが追加されているかどうかを判定したい。
(1) test.php?key=test
(2) test.php
(1)の場合には、定義済グローバル変数 $_GET に、キーと値がセットされる。
$_GET['key'] で値を取得できる。
(1)の場合に、test.phpの中で、
echo $_GET['key']; としたら、この出力は”test”となる。
$_GETが配列、URLの?の後に付けたキー値で配列を参照できる。
で、(2)の様に、パラメータ指定が無い場合。
echo $_GET['key']; としたら、この出力は空(null)…?。なのか?(^^;)
でも、'key'という、配列キー自体に意味がないよね、この場合。
なので、(1)のよに、パラメータが無い場合を想定して、
$_GET['key']の有効性を確認したい。
要は、$_GET[]に、'key'という連想キーでセット済かどうかだから、array_key_existsで参照前にキーの有無を判定する。
array_key_exists
(PHP 4 >= 4.0.7, PHP 5)
array_key_exists — 指定したキーまたは添字が配列にあるかどうかを調べる
説明
bool array_key_exists ( mixed $key, array $search )
指定した key が配列に設定されている場合、 array_key_exists() は TRUE を返します。
key は配列添字として使用できる全ての値を使用可能です。 array_key_exists() はオブジェクトに対しても動作します。
例えば、keyパラメータに値がある時は、その値を出力し、
無い場合は、パラメータ無しを通知するとすると。
if( array_key_exists( 'key',$_GET ) ) {
//パラメータ有り
echo $_GET['key'];
}
else{
//パラメータ無し
echo "keyパラメータが指定されてません";
}
ちなみに、上記コードだと、URLが、
(3) test.php?key
という場合には、パラメータは「有り」判定となる。
しかし、$_GET['key']の実体は、これも空(null)なのかな?
うーむ。うむ、うむ。
とりうえず、今考えている処理は、できるような気がしてきた。







コメント 0