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);
個人的にはエラー制御演算子は使用しないほうが良いと思います。