PHP
PHP7

echoでは@が使えない

More than 1 year has passed since last update.

※ちょっとしたメモで書いておきます。参考程度に。あとそこまで詳しくもないので大目に見てください。


そもそも@って・・・?

@は関数(includeなど・・・。)等の前に加えると、PHPの設定のエラー表示がオンの時に注意書きが表示されなくするものです。例えばfpで接続できなかったときに、エラー表示をさせないようにすることができます。


今回の本題

今回は、文字を表示するechoという関数ですが、以下のように書いてみました。

<?php

// define('MESSAGE', 'Hello World!');
@echo 'Message: '.MESSAGE;
?>

定数をわざとエラー表示を作るために、コメントアウトしています。

これを出力すると、

Parse error: syntax error, unexpected 'echo' (T_ECHO) in /path/to/script.php on line 3

※スクリプトのディレクトリは架空のものです。

エラーが発生。構文エラーが出ました。

echoprintに変更してみます。以下がスクリプトです。

<?php

// define('MESSAGE', 'Hello World!');
@print 'Message: '.MESSAGE;
?>

出力すると、

Message: MESSAGE

になります。