phpでよく見かける@とは?
久々すぎて自分のブログが怖い佐伯です。
ときどきphpを開発していて「@hoge = ~ 」のようなものを見かけるのですが、「php @」でGoogle先生に聞いても教えてくれず。。
最近「php アットマーク」で出てくることに気付きました。世知辛いですね。
@とはエラー制御演算子というもののようです。
例えば
$hoge = $_GET["test"];
という変数を宣言していたとして、そこに
$hoge = @$_GET["test"];
とするとエラーがあってもエラーメッセージを表示させないようにできるのだそう。
うーん、ライブラリなんかは余計なエラーを出さないように@が必要なのかもしれませんね。基本的に開発ではエラーは可視化したほうが良いと思うけど...
ということで調べてみるとDB関連の関数で使用することが多いようです。
PHPのMySQL関数はデータベースとの処理でエラーが発生した場合、ブラウザに自動的にエラーメッセージを吐き出すようになっているそう。実際に公開中のサイトにエラーが出るのは好ましくないため、@を使って制御しているみたいですね。
$con = mysql_connect("localhost","mysql","password");
↓
$con = @mysql_connect("localhost","mysql","password");
参考:http://park18.wakwak.com/~little-box/Dreamweaver/sql009.htm