• ベストアンサー

PHPの@includeとは?

現在PHPのソース解析を行っております。 初心者なのですが、実際動いている本格的なPHPソースを解析して勉強するように言われております。 その中で、@includeというものが度々出てくるのですが、普通のincludeとは何が違うのでしょうか? 調べてみましたが、http://php.net/manual/ja/function.include.phpこちらではよくわかりませんでした。 @が付くと具体的にどのようなことが起こるのでしょうか? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

ついでにだけど http://www.y2sunlight.com/water/webman/php1/1I.4.html あたりを読んでおくことを奨める。 >これを付けると、エラー出力が抑制され、また致命的エラーが発生してもスクリプトが終了しなくなります。 致命的なエラーはエラーの内容も示さずにスクリプトは終了してしまいます。 あなたが示したURL先にもしっかりと「警告」として >現在、エラー制御演算子プレフィックス"@"は、スクリプトの実行を 終了するような致命的なエラーの出力さえ抑圧します。このため、ある関数の エラー出力を抑制するために "@" を使用した場合、その関数が 利用できなかったり、ミスタイプがあった場合でも、原因を示すことなく その場所でスクリプトは終了してしまいます。 と書かれています。 簡単なサンプルだけど a.php <?php @include "b.php"; echo "テスト"; ?> b.php <?php ecgo "aa"; ?> これ実行してみたらわかると思います。 「@」を付けてincludeを実行すると何も表示されないで終了します。 「@」を付けないでincludeをした場合には「Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in」と言うエラーが発生します。

fk710b
質問者

お礼

ご丁寧にありがとうございます。 理解できました!

その他の回答 (1)

  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.1

「@」はエラー制御演算子です。 http://www.php.net/manual/ja/language.operators.errorcontrol.php これを付けると、エラー出力が抑制され、また致命的エラーが発生してもスクリプトが終了しなくなります。 include で@を使うのは、たとえばプラグインなど後から追加した外部PHPファイルを読み込む時に、 それでエラーが発生しても本来の動作に影響しないようにするため、といった目的などでしょう。

fk710b
質問者

お礼

ありがとうございますっ。 検索でひっかからなかったので、本当に助かりました。

関連するQ&A