[PHP-users 4639] Re: php4.1.1 での変数の扱いが厳密になってる
Youichi Iwakiri
php-users@php.gr.jp
Wed, 09 Jan 2002 22:18:01 +0900
いわきりです
Y.Watanabe wrote in <46C1990C311FA7yuw@msj.biglobe.ne.jp>:
>今までphp4.0.6を使っていたのですが、
>ためしに、php4.1.1 でテストコードを書いたら、
>変数の扱いが厳密になっていて、
>いままでのコードの書き方だとエラー出まくり!です。
>php4.0.6で書いていたころは
>(書き方1)
> <?php
> if ( $val == true ) { $str = "aiueo"; }
> print $str ;
> ?>
>と書いても何の問題も無かったのですが、これをphp4.1.1で実行すると、
> Warning: Undefined variable: val in /home/htdocs/test.html on line 2
> Warning: Undefined variable: str in /home/htdocs/test.html on line 3
>というエラーが出ます。
php.iniの設定で
error_reporting = E_ALL
に(なって|してい)ませんか?
#そうしているほうが良いのですけども :)
一応、4.2.0-dev, 4.1.0のphp.ini-distのデフォルトは
error_reporting = E_ALL & ~E_NOTICE
でそのままだと先のWarningメッセージは表示されません。
>4.0.6で書いていたころは、「定義されてない変数にアクセス
>しようとすると自動的にその値はnullとみなされる(らしい)」ので
>書き方1のように書いてもよかったのですが・・・。
>
>(1) あいまいなコードを書く自分が悪いんだからちゃんと書きましょう。
>(2) php.ini 等の設定でうまく回避できることだよ。
> (別に4.1.1になったからそうなったわけじゃないのか?)
>上の(2)みたいな対処策ってないでしょうか?(苦笑)
(2)で回避は出来るけど、(1)を実践しましょう :-)