PHP では、エラー制御演算子を使って PHP Notice などのエラーメッセージの出力を制御することができます。
ただし、PHP では、エラーメッセージの出力制御は php.ini や error_reporting 関数などでもエラーを制御するとこもできるので、設定方法や、組み合わせには十分な検証が必要です。
スポンサーリンク
エラー制御演算子の使用サンプル
初期化されていない変数にアクセスした場合には PHP では Notice メッセージが出力されますが、エラー制御演算子を使用して メッセージの出力を抑えるサンプルになります。
/* * エラー制御演算子を使用しない場合 */ $list = array('one' => 1, 'two' => 2); var_dump($list['one']); // 1 var_dump($list['two']); // 2 var_dump($list['three']); // null : Notice: Undefined index: three in ・・・・ /* * エラー制御演算子を使用してエラーメッセージを抑制した場合 */ $list = array('one' => 1, 'two' => 2); var_dump($list['one']); // 1 var_dump($list['two']); // 2 var_dump(@$list['three']); // null echo $php_errormsg; // Undefined index: three
エラー制御演算子(@)によって、Notice メッセージの出力が抑制されています。なお、php.ini の track_errors が On の場合は、サンプルのようにグローバル変数 ( $php_errormsg ) からエラーメッセージを取得することができます。
エラー制御演算子を使ったその他のサンプル
ファイルが存在する場合のみ、その内容を読み込みを行う処理で、エラー制御演算子を使用するサンプルになります。
/* * エラー制御演算子を使用しない場合 */ $path = 'path/to/file'; if(is_file($path)) { $data = file_get_contents($path); } /* * エラー制御演算子を使用する場合 */ $path = 'path/to/file'; $data = @file_get_contents($path);
個人的にはエラー制御演算子は使用しないほうが良いと思います。