[PHP-users 8952] Re: 引数の取得方法

Toshiyuki Kajii php-users@php.gr.jp
Fri, 26 Jul 2002 02:28:53 +0900


梶井です。

* Fri, 26 Jul 2002 01:39:48 +0900
* "Taro Yamamoto" <taro.y@jcom.home.ne.jp> wrote:

>result.php?page=1 ではなくて、
>result.php?page という値の無いキーを取得したいのでした。
>           ~~~~
>ですから、藤井さんがおっしゃる方法で取得は出来るのですが、
>例えば、result.php?action&page=1 などは
>                  ~~~~~~
>分解する必要があるので、スマートな方法は無いものかと。

とりあえず、キーを取得することから始めようと思って、以下のプログラムを
試してみました。

test.php
<?php
$arr = array_keys($_GET);
foreach($arr as $value){
	echo "$value,";
}
?>

・呼び出し : test.php?a=1&b&c=1&d
・結果     : a,b,

それで、phpinfo() だけのプログラムに同じクエリーを渡すと、

$_GET['a'] = 1
$_GET['b'] = NULL

となっていました。
これ多分、値を持つ変数の数だけ頭から認識しています。それってすごく変
ですよね?bやdがとれないだけならまだしも、cの値が取得できません。

(1) $_GET['a']=1, $_GET['c']=1
(2) $_GET['a']=1, $_GET['b']=NULL, $_GET['c']=1, $_GET['d']=NULL
(3) $_GET['a']=1, $_GET['b&c']=1

上の3パターンならばどれもまだ納得いくのですが、こういう仕様なのでしょ
うか?

ちなみに、環境は以下の通りです。
OS:Debian sarge
Apache1.3.26
PHP4.2.2(CGI,DSO)(テストはDSOモジュール動作)


*---------------------------------------------------*
    Toshiyuki Kajii    梶井 俊幸
    e-mail:            mikoto@camino.nissan.ne.jp
*---------------------------------------------------*