0

PHP に存在しない変数を使用しようとしても、エラーや通知は表示されません。以下の例では、戻り値は「null」です。コード内のバグをより簡単に見つけることができるように、何らかの形で通知を受け取りたいと考えています。

echo $doesNotExist -> something; //returns null

私のphp.iniのエラー報告は次のとおりです

error_reporting = E_ALL

存在しない変数にアクセスするときに通知を表示するにはどうすればよいですか?

これを明確にするために:

を使用して変数が存在するかどうかを確認できることを知っていますisset()。それは私が欲しいものではありません。存在しない変数を誤って使用しようとした場合に備えて、通知を受け取りたいです。たとえば、変数の名前のスペルを間違えた場合。

display_errors = On私のphp.iniにあります

4

3 に答える 3

0

だけでなく、実稼働環境ではオフにerror_reportingする必要がある をオンにする必要がある場合があります。display_errors

本番環境では代わりに使用できます。これは、ディレクティブlog_errorsで指定されたファイルにエラーを出力します。error_log

于 2013-09-20T12:13:50.647 に答える
-1

あなたがすることは、PHPで完全に有効です。実行時にその変数を作成してインスタンス化するだけで、他の言語のようにエラーをスローしません。

isset でさえうまく機能しません。オブジェクト変数を間違った名前で設定したとします。その名前で isset を実行すると、true になります。正しい名前で isset を実行すると、false になります。

例:

class test{
    public $name1;
}

$test = new test;
$test->name2 = 'wrong';

var_dump($test);

プリント:object(test)#1 (2) { ["name1"]=> NULL ["name2"]=> string(5) "wrong" }

于 2013-09-20T13:53:13.033 に答える
-1

私は通常、次のように使用します。

if(isset($var) && !empty($var)) {
    //Do something with $var
} else {
    //Define $var
}

前の回答で述べたように、php.ini でエラー レポートをオンにする必要もあります。

于 2013-09-20T12:22:31.573 に答える