- ベストアンサー
変数など厳密なプログラムが書きたいのですが、どうすればよいでしょうか?
PHPで関数の引数に渡すとき、以下のように$aaを$aとしてしまった場合に 関数内の$idは値がありませんが、関数内でこれを検出することができるのでしょうか? Perlなら use strict;とし、my等で定義されていない変数はすべて警告表示されますが、PHPはスルーです。 変数など厳密なプログラムが書きたいのですが、どうすればよいでしょうか? $aa = 1; test($a) function test($id){ ... }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
E_NOTICEレベルでエラーを検出すればよいでしょう。 <?php error_reporting(E_NOTICE); //もしくはerror_reporting(E_ALL); $aa = 1; test($a); function test($id){ print $id; } ?>
その他の回答 (1)
- sykt1217
- ベストアンサー率34% (277/798)
仰っている質問の定義が曖昧です。 PHPは宣言が必要ありませんし、変数宣言によるエラーはありません。 >変数など厳密なプログラム という点が特に曖昧なのですが、これは「変数の値があるか否かの制御」ともとれますし、「変数自体が使われているか否か」の制御ともとれます。 まぁ何れにしても、「誤って実際と違う変数名を使用した場で、その変数は宣言されたと同義」ですので、後者はないものと考えた方が宜しいかもしれません。(少なくとも私にはわかりません。) 変数の中身があるか否か、という点に絞れば 「empty」か「isset」を使ってやるのが適当かと思います。 //$aの値が空・0でない場合の処理 if(!empty($a)){ } のように使用します。 これでも制御は可能かと思いますが如何でしょう?