無料CGI、PHPサイト(確認画面付きメールフォーム・メーリングリスト・メルマガ設置、逆アクセスランキング、画像カウンター等)PHPマニュアル by k-sky

エラー制御演算子

PHP はエラー制御演算子(@)をサポートしています。PHP の式の前に付けた場合、 その式により生成されたエラーメッセージは無視されます。

track_errors 機能が 有効な場合、式により生成されたエラーメッセージはグローバル変数 $php_errormsg に保存されます。この変数はエラーが発生するたびに上書きされます。 そのため、この変数を使用したい場合には速やかに確認する必要があります。

<?php
/* 意図的なエラー */
$my_file = @file ('non_existent_file') or
    die (
"Failed opening file: error was '$php_errormsg'");

// この演算子は関数だけでなく、全ての式で動作します。
$value = @$cache[$key]; 
// インデックス $key が存在しない場合でも、警告を発生しません。

?>

注意: @演算子は、 でのみ動作します。基本的なルールは次のようになります。 値を得ることができるものの場合、@ 演算子を前に付けることが可能です。 例えば、変数、関数、include()コール、定数等の 前にこの演算子をつけることが可能です。関数またはクラスの定義や ifforeach 等のような 条件構造の前にこの演算子を付けることはできません。

error_reporting() と、 エラー処理とログ出力関数 も参照してください。

警告

現在、誤差制御演算子プレフィックス"@"は、スクリプトの実行を 終了するような致命的なエラーの出力さえ抑圧します。このため、ある関数の エラー出力を抑制するために "@" を使用した場合、その関数が 利用できなかったり、ミスタイプがあった場合でも、原因を示すことなく その場所でスクリプトは終了してしまいます。