[PHP-users 4637] php4.1.1での変数の扱いが厳密になってる
Y.Watanabe
php-users@php.gr.jp
Wed, 09 Jan 2002 21:50:18 +0900
ども。渡辺と申します。
今まで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
というエラーが出ます。
(書き方2)
<?php
$val = true; // falseでもよいけど
if ( $val == true ) { $str = "aiueo"; } else { $str = ""; }
print $str ;
?>
という風に、変数がきちっと定義されるようにしておかないと
その変数にアクセスしようとするとエラーになるようです。
4.0.6で書いていたころは、「定義されてない変数にアクセス
しようとすると自動的にその値はnullとみなされる(らしい)」ので
書き方1のように書いてもよかったのですが・・・。
(1) あいまいなコードを書く自分が悪いんだからちゃんと書きましょう。
(2) php.ini 等の設定でうまく回避できることだよ。
(別に4.1.1になったからそうなったわけじゃないのか?)
上の(2)みたいな対処策ってないでしょうか?(苦笑)