[PHP-users 4467] PHP4.1.0での定義されていない入力

Amaike takehiro php-users@php.gr.jp
Wed, 26 Dec 2001 02:02:23 +0900


こんにちは、天池と申します。

この度PHP4.1.0がリリースされたということで早速導入しました。
そこで起こった問題に関してです。

とあるページではGETで渡す引数がある時と無い時で処理を変えていました。
具体的には
ooooo.php
のような時は引数無し
ooooo.php?mode=write
の様なときは引数ありです。

4.0.6で実際スクリプトが実行されたとき、$modeは
引数あり "write"
引数無し ""
となり、引数があるのかないのかの判定が
if($mode=="")           --- (1)
の様に出来、簡単でした。
つまり、入力として未定義な変数の使用が可能だったわけです。

しかし、4.1.0導入後、入力されていない変数は宣言されていないのと同じとな
り(1)を使うとwarningを吐くようになりました。
    Warning: Undefined variable: mode in T:\php\ooooo.php on line 10

今回新しく追加された@_GET[変数名]・@POST[変数名]・@_REQUEST[変数名]を使っ
ても同様で
    Warning: Undefined index: mode in T:\php\ooooo.php on line 9
のようにwarningとなります。

かといってデフォルトの状態のアドレスを
http//〜/ooooo.php?mode=
にするのは嫌なので困っています。

どのように解決したらよいでしょうか?
(warningを表示しない設定にする解決法を除いて)
4.1.0に限らず(1)以外の方法がありましたら教えていただきたいと思います。
よろしくお願いします。

-----
たんぱぁ@ShootingStarLAB(天池岳雄)
mail: tanpa@nifty.com
URL: http://www.ss-lab.com/