2019-06-10

エラーメッセージを表示させたくない

PHPに関する記事

エラー制御演算子@でエラーを制御する

定義されていない変数や関数を参照したり、存在しないファイルをインクルードしたような場合、Notice、Warning、Faral errorといったエラーが表示されます。エラーの原因となる記述のあたまに、エラー制御演算子@(アットマーク)を付けるとエラーを非表示にできます。
エラー制御演算子は値を得ることができる記述に使うことができます。

エラー制御演算子なし

<?php
// 定義されていない値の参照
print $var;
// 定義されていない関数の呼び出し
test_func();
// 定義されていない定数の仕様
$var = TEST_CONST;
// 存在しないファイルのインクルード
include("test.txt");

エラー制御演算子あり

<?php
// 定義されていない値の参照
@print $var;
// 定義されていない関数の呼び出し
@test_func();
// 定義されていない定数の仕様
$var = @TEST_CONST;
// 存在しないファイルのインクルード
@include("test.txt");

ただ関数やクラスの定義、if文のような条件分岐構文にはこの演算子を付けることはできないという点に注意が必要です。
@はスクリプトの実行を終了させてしまうような致命的エラーの制御も可能です。そのため、色々な箇所で多用してしまうと、エラーの発見が遅れ原因の解明に支障が出てしまう可能性があります。エラーの出ないプログラミングを普段から心がけましょう。