関数前の@について

関数前に @fopen のように、@ がついていることがあります。

この名前はエラー制御演算子というそうです。

これは何かというと、普通に fopen を使うと、fopen に失敗した際に、エラーが表示されてしまいます。

このエラーを表示しないのが @fopen となります。

fopen などのようによく使う関数で、ファイルがなかったりすることが結構あったりしますが、@をつけておけばエラーが出ないので、どうしようもない場合など @ をつけるようにしましょう。

@ を付けたらエラーメッセージは表示されませんが、
$php_errormsg という名前のグローバル変数にエラーメッセージが入ります。

<?php

$fp
= @fopen("hoge.txt","w");
// これでエラーは出ない

if ($php_errormsg) {
    echo
$php_errormsg; // エラーを自分で出力
}

?>


上記例では echo で出力してますが、ログに吐いたりメールで通知したりといろいろ処理できると思います。