2016-12-28 10 views
-1

私が持っている3種類のファイル -include_onceループはどのようにPHPで処理されますか?

  1. fileMainIncludeEverywhere.php

    ... 
    include_once('fileMinorInclude.php'); 
    ?> 
    
  2. fileMinorInclude.php

    ... 
    include_once('fileMainIncludeEverywhere.php'); 
    ... 
    
  3. fileToRun.php

    ... 
    include_once('fileMainIncludeEverywhere.php'); 
    ... 
    

私はfileToRun.phpのようなファイルがたくさんあります。

現在、私は自分のコードでエラーに直面していませんが、これが失敗するケースがあるかどうかを知りたいのですが?

+0

エラーは発生しません。あなたはSO - https://secure.php.net/manual/en/function.include-once.phpに投稿する前にマニュアルをお読みください。私はそれがかなり明確だと思いますか? – spinkus

+0

テストしたとき何が起こったのですか? – symcbean

+0

@S。Pinkus私はマニュアルを読みましたが、ファイルが含まれていれば、それは再び含まれないと書かれています。しかし私の場合、ファイルは一度も含まれていません。 – xRahul

答えて

1

この場合は間違いないと思います。 include_onceは最初にファイルを読み込むだけなので、同じファイルに対して次回の読み込み要求は拒否されます。

だからあなたの例から:

  1. fileToRun.phpがロードされますfileMainIncludeEverywhere.php
  2. fileMainIncludeEverywhere.phpがロードされます(最初の呼び出し)fileMinorInclude.php(最初の呼び出し)
  3. fileMinorInclude.phpfileMainIncludeEverywhere.phpをロードするために呼び出しますが、それはそれとして拒否されます最初のステップで既にロードされています。

希望すると助かります。

+0

これは良い推論のようです。コードベースでこれをやった人はいますか? – xRahul

1

include_once

のinclude_once文は、スクリプトの実行時に指定したファイルを評価します。これは、includeステートメントのような動作で、の唯一の違いは、ファイルのコードが既に含まれている場合には、再度組み込まれないことです。、include_onceがTRUEを返します。名前が示すように、ファイルは1回だけ含まれます。

"ファイルのコード"には、実行されたPHPファイルも含まれます。

require_once()include_once()の代わりに使用するのは、include_once()を使用する特別な理由がある場合を除いて(たとえば、オプションのテンプレートコンポーネントを含めるなど)、一般的にはベストプラクティスです。これは、必要なリソースが見つからない場合にrequire_once()が終了する(fail fast)ため、通常は見つからない場合は端末障害になります。

+0

いくつかのエラーが発生した場合(オプションのコンポーネントについて述べたように)、含まれないようにする特別な要件があります。 – xRahul

関連する問題