• 締切済み

(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
  • 回答数1
  • ありがとう数2

みんなの回答

回答No.1

ここに書いてありますよ。

参考URL:
http://php.planetmirror.com/manual/ja/function.require.php
waterclock
質問者

お礼

情報ありがとうございます。 そのサイトの内容で混乱しているんです。 ただ、別サイトのスレッドで、この問題について 色々と書かれていたので、少しだけ使い分けを理解できました。 結構、難しい問題です。エラーが出たら対処することにしました。

関連するQ&A

  • include_onceについて

    php初心者です。 includeやrequireにはinclude_onceやrequire_onceといった "すでに読み込んでいる場合"は無視するというものがありますが、 この"すでに読み込んでいる場合"とはどういう時なのでしょうか? サーバーにキャッシュでもされていて、そのキャッシュがあればそれを利用するという感じなのですか? どういう条件でinclude_onceやrequire_onceが実行されるのか教えてください。 また、どういう時に使い分けるのが賢いやり方なのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • require_onceが動いていない

    Cache_Liteを使ってキャッシュ処理を組もうとしています。 実行すると、ブラウザ上には何も表示されない状態です。 試しにキャッシュ処理を除いた部分のPHP処理を実行すると、 その処理は正しく実行されることが確認できました。 いろいろ調べてみると、どうやらrequire_onceが動いていないであろうということに行き当たりました。 いろいろ試して見たのですが、なぜ、require_onceが動作していないのかわからずに先に進むことができない状態でいます。 どの部分を確認して試すべきか、教えていただけないでしょうか。 ■実行環境は以下の通りです。  OS:Windows XP Pro.  PHP: PHP5 5.1.4  サーバ: Apache 2.0.58 ■PHP,PEARは正常にインストールされています。  コマンドプロンプトでpear list を実行すると、  "Cache_Lite 1.7.2 stable"と表示されているので、  Cache_Liteそのものはインストールされています。 ■ソース --------------------------------------------------------- require_once('Cache/Lite.php'); //キャッシュ処理 $options = array( 'cacheDir' => '/tmp/cache', 'lifeTime' => 86400, 'caching' => true, 'automaticCleaningFactor' => 20, 'automaticSerialization' => true, 'pearErrorMode' => 'CACHE_LITE_ERROR_DIE' ); $cache = new Cache_Lite($options); $id = 'RTSK001'; if ($data = $cache->get($id)) {   //キャッシュがある場合の処理     } else { //キャッシュがない場合の処理 $Cache_Lite->save($data,$id); } ------------------------------------------------------ ■その他  ちなみに、このPHPはhtmlページよりSSIによって呼び出しています。  SSIによるPHPの呼び出しは動作しています。

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

    MAMPを使用して開発しています。 MAMP/htdocsに入っているa.phpから同一階層にあるb.phpを呼びだそうと思い require_once('b.php'); と記述したのですが Warning: require_once(b.php): failed to open stream: No such file or directory in - on line 13 Fatal error: require_once(): Failed opening required 'b.php' (include_path='.:') in - on line 13 とエラーが表示されます。色々と試してみたもののうまくいかず。 アドバイスを宜しくお願い致します。

    • ベストアンサー
    • PHP
  • include,require について

    include,require元を知る方法はないのでしょうか? 例としては下記の状況でinclude.phpがどのscriptに呼び出されたかが知りたいのです。 main.phpの内容 <? include 'include.php'; ?> include.phpの内容 <? 処理・・・ ?>

    • 締切済み
    • PHP
  • requireとincludeどっちを使えばいいのでしょう?

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

    • ベストアンサー
    • 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
  • PHP include_once

    include_onceで読み込んだファイルが そのままテキストとして出力されてしまいます。 以下のような感じです。 インクルードするファイル fail.inc test_val = array("aaa" => "aaa111", "bbb" => "bbb222", "ccc" => "ccc333"); ソース本体 src.php <?php include_once('./fail.inc'); 以下処理 exit(); ?> これをそのまま実行すると以下のように出力されます。 test_val = array("aaa" => "aaa111", "bbb" => "bbb222", "ccc" => "ccc333"); includeせずにそのまま走らせると正常に動きます。 httpd.confのaddtypeにincという拡張子は追加していませんが 他の同様のソースでは問題なく読み込めます。 require_onceとかも試しましたが同じようにfail.incの中身がそのままテキストとして 出力されてしまいます。 どうしたら正しく読み込めますでしょうか。 ご回答よろしくお願いしますm(_)m

    • ベストアンサー
    • PHP
  • require_onceでファイルが開けない!?

    requre_onceでのファイルの読み込みが上手くいかないらしく、次のようなエラー文が出てしまい困っております。 =========エラー文=================== Warning: require_once() [function.require-once]: URL file-access is disabled in the server configuration in C:\xampp\htdocs\wakuphp\girlup_result_kanryou.php on line 6 Warning: require_once(http://waku2work.com/mysql2.php) [function.require-once]: failed to open stream: no suitable wrapper could be found in C:\xampp\htdocs\wakuphp\girlup_result_kanryou.php on line 6 Fatal error: require_once() [function.require]: Failed opening required 'http://waku2work.com/mysql2.php' (include_path='.;C:\xampp\php\pear\') in C:\xampp\htdocs\wakuphp\girlup_result_kanryou.php on line 6 ================================ 問題の6行目のソースコードは以下の通りです。 ======ソースコード6行目================= require_once("http://waku2work.com/mysql2.php"); ================================ この場合、”require_once”が読み込めて無いって事ですよね!? 一応初心者なのですが、気になるのは3つ目のエラー表示で、ローカルのパス表示が出てる点です。 設定がうまくいってないのでしょうか? 有識者の方いらっしゃいましたら、どうか宜しくお願いします!

    • ベストアンサー
    • PHP
  • include_onceで呼び出したPHPファイル

    PHPでサイトを組んでいるのですが、include_onceで以下のようにPHPの各ファイルを呼び出して実行しているのですがうまくいきません。 <?php //レンタルサーバーのcronを利用して、定期的に走らせるコードです。 include_once "example_a.php"; include_once "example_b.php"; include_once "example_c.php"; ?> 各ファイルは、RSSで読み込んだデータをMySQLに格納するプログラムです。 個別で各ファイルを実行すると正しい結果となりますが上記のようなプログラムでまとめて実行するとexample_a.phpは正しい結果となりますが、example_b.php、example_c.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

専門家に質問してみよう