includeとrequireどっちを使えばいいのでしょう?

このQ&Aのポイント
  • includeとrequireの違いと使い方について教えてください。
  • includeとrequireのパフォーマンスの違いはありますか?
  • みなさんはincludeとrequireをどのように使っていますか?
回答を見る
  • ベストアンサー

requireとincludeどっちを使えばいいのでしょう?

題名にもある通り、便利な関数やdefineで定義した定数などを別ファイルにしてそれをインクルードしたいとき、一般的にはincludeとrequireどちらを使えばよいのでしょうか? また、includeのほうが軽くなるということはあるのでしょうか? マニュアルではincludeは呼び出したときに何度でも呼び出される旨 http://www.php.net/manual/ja/function.include.php かいてありますが、実践でどのようにつかえばよいかわかりません。 どなたか、ヒントでもかまいませんのでおしえていただけないでしょうか? 皆様は、どちらをどのようにお使いになってらっしゃいますか? よろしくお願いいたします。

  • Ants
  • お礼率95% (45/47)
  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
noname#875
noname#875
回答No.1

include()とrequire()の違いは、 require()は、たとえ条件分岐などによりrequire()のある行が実行されない場合でもrequire()で指定されたファイルが読み込まれるということと、たとえrequire()がループで何度も繰り返される場合でもrequire()は1回しか実行されません。 これに対してinclude()は条件分岐やループなどのプログラムの影響を受けるため、条件によって実行させないようにしたり、ループごとに異なるファイルを読み込ませたりすることができます。 どちらが軽いということはありません。 定数や関数群などを読み込ませる場合はファイルの先頭でrequire()を使用するのが一般的ではないでしょうか。

Ants
質問者

お礼

お礼がおそくなりもうしわけありません。 includeとrequireの違いはそういった操作的な用途でつかいわければいいのですね。 includeだから重くなるとかいったことは関係ないようですね。 有難うございました。

関連するQ&A

  • (require / require_once) (include / include_once)について

    毎度、お世話になります。 今回は、requireとrequire_once(includeとinclude_once)の使い分けについて 教えて下さい。 取りあえず、改造しているPHPでは、include()だけを使って正常に動作しています。 include()させている箇所がいくつもあります。 ただ、やっぱりわからないのは、 requireとrequire_once(includeとinclude_once)に関して、 PHPマニュアルなどを見ても、処理方法の違いだけで、それならば最初から全部、 require_once() 又は、include_once() だけの方が良いように思えるのですが、 例えば、この処理に関しては、絶対、include()。これならば、require()。 また、これなら、include_once()、あるいは、require_onceと言う風に、 明確なものはあるのでしょうか? かなり迷路に迷い込んでます。(時間が止まってます) どうかよろしくお願いします。

    • 締切済み
    • PHP
  • インクルードファイルが重いのは大丈夫でしょうか?

    私はPHPでショッピングサイトを構築しているのですが、そのサイトの全てのファイルに、include.iniファイルをrequireしています。 このinclude.iniの中には、便利な関数や定数定義などを入れています。(だいたい1600行くらい) ところが、某米国のレンタルサーバーを使っているせいか、夜間(特に土曜日)はまったく動かないといっていいほど処理が遅いのです。(たいていタイムアウトになります。) 原因はやっぱりこのインクルードしているファイルが大きいせいでしょうか? それとも安価な(.comドメイン込みで年間5000円くらい)サーバーが原因なのでしょうか? 同じような状態を経験されたことはないでしょうか? ちなみに、データベースはMysqlに接続しています。

    • ベストアンサー
    • PHP
  • includeとinclude_onceの使い分け

    まずマニュアルを。 ------------------------------------------------------ PHP: include_once - Manual http://www.php.net/manual/ja/function.include-once.php include_once 命令は、スクリプトの実行時に指定したファイルを読み込み評価します。この動作は、include 命令と似ていますが、ファイルからのコードが既に読み込まれている場合は、再度読み込まれないという重要な違いがあります。その名が示す通り、ファイルは一度しか読み込まれません。 include_once は、スクリプトの実行時に同じファイルが複数回読み込まれ、評価される可能性がある場合に、関数の再定義や 変数値の再代入といった問題を回避するために一回だけ読み込ませるために使用します。 ------------------------------------------------------ …。表面的な機能の違いはわかりました。しかしそれをどう使い分けるのかの説明はなく、分かりませんでした。 よく分からない点は以下です。 ・同じファイルを何度も「include」もしくは「include_once」するケース ・あえて何度も記述しながら実際には1度しか評価してほしくないケース ・何度も記述して、そのつど評価したいケース これらについて例を挙げて教えていただきたいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • require,includeとAjaxで分岐

    お世話になります PHPファイルについて requireやincludeで読み込まれた場合と Ajaxでのアクセスに対する処理を分岐する というのは可能でしょうか? $_SERVER['PHP_SELF']と__FILE__を比較すればいいかな とか思ってますがそれで本当に大丈夫なのか? もしかしてこの二つ、なんか違う形でパス返したりしないか? もうちょっと賢いやり方あるんじゃないか?とちょっと不安です 動機としては『これって一つにまとまってた方が便利じゃね?』 ぐらいのもんなんで、やめといたほうがいいっていうものなら諦めます よろしくお願いします

    • ベストアンサー
    • PHP
  • リモートファイルのrequireに関して

    はじめまして、 PHPのマニュアルには 「php.iniでallow_url_fopenを有効にした場合、 パラメータとしてファイル名をとる関数の多くでHTTPおよびFTPのURL を使用することができます。加えて、include(), include_once(), require(), require_once() 命令でURLを使用することができます。」 とあるのですが、requireでリモートファイルを読みこめません PHP のバージョンは 4.1.2 php.iniでallow_url_fopenが有効(On)になっているのは確認しました。 http://www.****1.com/hoge1.php から http://www.****2.com/hoge2.php を呼び出しています。 hoge1.php及びhoge2.phpのソースは以下のとおりです。 ----hoge1.php-------------------------------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML lang="ja"> <HEAD> <META http-equiv="content-type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITILE></TITILE> </HEAD> <BODY> <?php require ("http://www.****2.com/hoge2.php"); dispword(); ?> </BODY> </HTML> --------------------------------------------------------------------- ----hoge2.php-------------------------------------------------------- <?php function dispword(){ print xyz; } ?> --------------------------------------------------------------------- 実行結果は Fatal error: Call to undefined function: dispword() in ・・略・・****1.php on line 11 となります。 10行目じゃなく11行目にでてるということは、requireできてるんでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPの@includeとは?

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

  • 再度、リモートファイルのrequireに関して

    以前、この板で質問させてもらって、解決したと思っていたのですが、実は勘違いで解決にしてしまいました。 ですので、再度質問させてください。 前回の質問&解答は ブラウザのキャッシュに「リモートファイルのrequireに関して」をキワードに検索していただくようお願いします。 ここからが本題ですが、 requireで呼び出すファイルが、呼び出される側のサーバーでphpファイルとして認識されると呼び出せないことです。 phpファイルと認識されないファイル(拡張子がtxtなどのファイル)では正常に呼び出せます。 これは前回解答いただいたとおり、呼び出される側のサーバーがphpファイルとして認識した場合0バイトのファイルが返ってくるのが原因だと思います。 ところが http://www.php.net/manual/ja/function.include.php の 例 11-5. HTTP経由のinclude() では、むしろphpファイルと認識されないとうまく動作しないような書き方がされています。 txtで読みこめるのですが、直接アクセスされたときに中身を見られるのが嫌なため、phpファイルを読みこみたいので改めて質問させてもらいました。 よろしく、ご教授ください。

    • ベストアンサー
    • PHP
  • include_pathについて

    php.ini内のinclude_pathをinclude_path=".;C:\php\include"と設定してC:\windows\(不安なのでC:\php\にも)に置いているのですが、 なぜかphpinfo()を開いて確認すると".;C:\php5\pear"となっています。 Loaded Configuration File を見ても C:\Windows\php.ini となっていますし。 require_once "DB.php"を実行したときに以下のエラーが出たので、 db.phpのインストールも済んでいることから、include_pathが正しく設定されていないのが問題だと思うのですが・・・ Warning: require_once(DB.php) [function.require-once]: failed to open stream: No such file or directory in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\users.php on line 2 Fatal error: require_once() [function.require]: Failed opening required 'DB.php' (include_path='.;C:\php5\pear') in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\users.php on line 2 php.ini以外にも設定しなければいけない個所があるのでしょうか?

    • 締切済み
    • PHP
  • ■includeに関して■

    どうも^^ PHPでプログラミングをしていたら ふと思ったので質問させていただきます。 ※オブジェクト指向では書いていません。 (「function 関数名{ }」という形で書いてます) ソースを見やすくするために関数を別のファイルに書いているので よく include を使うのですが、やっぱりincludeする側のソースが長いと プログラム実行速度も遅くなりますよね? あともう1つ質問なんですが 関数(機能)ごとに1つずつソースを書いたほうがよいのでしょうか? それとも、関数を1つのファイルにまとめて書いたほうがよいのでしょうか? 自分の考えでは・・・  まとめてソースを書いたら、使わない関数も当然でてくると思います。  その場合 include すると余分な関数も読み込んでしまい  結果、実行速度が遅くなる。。。という予感がするのですが。 質問ばかりですいません;;

    • ベストアンサー
    • PHP
  • include先でのinclude元の変数について

    度々お世話になっています。 include先でのinclude元の変数の扱いについて疑問に思ったので質問させて下さい。 include元ファイルtest.php include先ファイルinclude.phpとしてtest.php内の変数をinclude.phpに渡したいと考え以下のコードを書きました。 test.php <?php $test = "いけるかな?"; include "include.php"; ?> include.php <?php echo $test; ?> 結果、$testの値を表示する事が出来なかったのですが、$testの値を表示するためにはどのような記述方法があるのでしょうか? また、このような動作を期待している理由としてはPHP部分とHTMLを分離させたいと考えており、ユーザ定義関数に変数を引数として渡して、出力処理をユーザ定義関数内で行うという事も考えたのですが、include先に値を渡す事が出来れば、非常にわかりやすく分離出来ると考えたからです。 他に、PHP部分とHTML部分をファイル分けするやり方などありましたら教えて頂けますとうれしいです。

    • ベストアンサー
    • PHP