重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

現在PHPのソース解析を行っております。
初心者なのですが、実際動いている本格的なPHPソースを解析して勉強するように言われております。

その中で、@includeというものが度々出てくるのですが、普通のincludeとは何が違うのでしょうか?
調べてみましたが、http://php.net/manual/ja/function.include.phpこちらではよくわかりませんでした。

@が付くと具体的にどのようなことが起こるのでしょうか?
よろしくお願いいたします。

A 回答 (2件)

ついでにだけど


http://www.y2sunlight.com/water/webman/php1/1I.4 …
あたりを読んでおくことを奨める。

>これを付けると、エラー出力が抑制され、また致命的エラーが発生してもスクリプトが終了しなくなります。
致命的なエラーはエラーの内容も示さずにスクリプトは終了してしまいます。
あなたが示した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」と言うエラーが発生します。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/05/02 11:04

「@」はエラー制御演算子です。


http://www.php.net/manual/ja/language.operators. …

これを付けると、エラー出力が抑制され、また致命的エラーが発生してもスクリプトが終了しなくなります。

include で@を使うのは、たとえばプラグインなど後から追加した外部PHPファイルを読み込む時に、
それでエラーが発生しても本来の動作に影響しないようにするため、といった目的などでしょう。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/04/28 15:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!