WEBサービス部 Lesson19 / 1hour
Sep / 30.5hour
Total / 132hour
PHPに出てくる、[@]はどんな意味があるのか?
$value = @$cache[$key];
$cacheの前についている「@」。これ、何でしょうか?
CSSだと、@mediaとか@charsetで目にしたことあると思うんですけど、PHPで「@」ってあまり見ませんよね?
初めて見た時に、「なんだこれ?コードミスか?」と思いましたが、この「@」くん、実は立派な役割を持ってます。
PHP の式の前に付けた場合、 その式により生成されたエラーメッセージは無視されます。
つまり、「たとえエラーが出たとしても、無視するようにPHPを制御するよ!」という役割を持っている、ということです。
実際に見ていきましょう。
<?php
phpini_set('display_errors', 1); //エラーを画面に表示するようセット
echo $sample;
echo 'test';
?>
定義していない「$sample」という変数を出力しようとしたため、「Undefined Variable」というエラーが画面に表示されています。
これを今回の主役「@」くんを用いた場合、どうなるでしょうか。
<?php
phpini_set('display_errors', 1); //エラーを画面に表示するようセット
echo @$sample;
echo 'test';
?>
このように、Noticeというエラーが無視されて後続の「test」だけが表示されました。
・注意すること
ただ、この「@」くんですが下記にある通り相性が悪い方たちもいます。
なので、使用する時には必ず「式」かどうかを確認しましょう。
上記の網掛けの部分(定義部分)は全て下記のサイトより引用してます。
https://www.php.net/manual/ja/language.operators.errorcontrol.php
学習は全てウェブカツ!!というプログラミングスクールで学んでいます。
大手スクール生徒や現役エンジニアが多数学び直している「実務レベル」に特化した「稼ぐ」ためのプログラミングスクール[…]