あなたは($ I = 0; $ I < 10;私は++ $)のために、このループ内にPHPを含むファイルをループ内で実行するたびにファイルにアクセスしますか?
している場合( 'whatever.php')を含み;
ファイルを実際に10回プルするか、ファイルに一度しかアクセスせず、その内容を保持し、それを他の9回評価するだけですか?
あなたは($ I = 0; $ I < 10;私は++ $)のために、このループ内にPHPを含むファイルをループ内で実行するたびにファイルにアクセスしますか?
している場合( 'whatever.php')を含み;
ファイルを実際に10回プルするか、ファイルに一度しかアクセスせず、その内容を保持し、それを他の9回評価するだけですか?
ファイルは10回含まれます。それが問題だ場合
、あなたがチェックするために十分なinclude_once
シンプルな使用することができます - そこに)(睡眠を入れて、いくつかの出力を行うファイルを持っているし、睡眠期間の1時に、変更したファイルを修正しますその出力。
whatever.php:スリープの間に、次に
、別のシェルを使用して、 "バージョン2.0" に変更します。出力が変更されない場合、PHPはファイルを一度ロードしてキャッシュします。ファイルの出力/エフェクトのコピーが10個ありますが、PHPがディスクに10回ヒットしなかったことがわかります。
PHPでインクルードメソッドの動作を判断する良い方法、ありがとう:) – Macmee
ファイルが解析されずにメモリからインクルードされ、PHPバイトコードにコンパイルされるかどうかを尋ねる場合は、次のようにします。 - 指定ファイルをインクルードすると、同じファイルをn回処理しますn回。これはPHPの標準的な動作ですが、...
あなたはそれを変更することができます(それはあなたが探しているようです)。私が言ったように、PHPはファイルを最初に含まれていますし、あなたはAPCのような任意のPHPのキャッシュモジュールを使用している場合を除き...あなたのためにそれをキャッシュしません。
、物事が異なることを行っているAPCを使用して出力結果は同じになりますが、サーバーの動作が大きく変わります!最初にファイルをインクルードすると、解析され、PHPのバイトコード(機械可読命令)にコンパイルされ、共有メモリに格納されます。後で、指定されたファイルが変更されない限り、NOTが再度処理されます。 PHPはあなたのプログラムのコンパイル済みバージョンに直進して実行し、多くの時間とリソースを節約します!トラフィックの多いWebアプリケーションに適しています。私はそれだけで、それは一度、その後、他の9回に何も表示されないなどが文句を言わないforループでのinclude_onceを入れた場合はAPC here
について
もっと? – Macmee
まあ、そうです:P時にはあなたは*それが10回含まれることを望みます。 – sdleihssirhc