3

それを必要とする、またはそれを必要とする以上の理由があるかどうかを確認したかったのです(したがって、名前が付けられました)。私はこの声明に出くわしました:

とは異なりinclude()require()その行が実行されなくても、常にターゲット ファイルを読み込みます。条件付きでファイルを含める場合は、include(). 条件文は影響しませんrequire()。ただし、require()が発生した行が実行されない場合は、ターゲット ファイル内のコードも実行されません。

私が解釈している方法は、最終的に実行されない条件式を内部に含め、実際にはそこに含めないということです。これは、サーバーにとってコストがかからないように思えます。これが本当かどうか、私はただ興味があります。説明書には載っていなかったので、懐疑的です。

4

2 に答える 2

4

false ステートメント内に include がある場合、解析されません。同じことがrequireにも当てはまります。主な唯一の違いは、ファイルが実行されていない場合でも、require がファイルが存在するかどうかを確認することです。まあ、これは少なくとも私の経験です。

したがって、両方とも一度実行されると発生しますが、実行されたかどうかに関係なく、ファイルが存在しない場合、require はエラーを表示します。

于 2012-04-22T04:52:14.550 に答える
1

正確にどのように実装されているわけではありませんが、これにより、2 つの違いが何であるかがわかります。

function require($file) {
   if (!is_readable($file)) {
      die("can't read $file");
   }
   include($file);
}

include は、PHP にファイルを含めるように指示するたびにファイルを読み取ります。_once バリアントは、何が含まれているかを追跡し、1 回だけインクルードを実行します。

于 2012-04-22T05:01:07.460 に答える