2012-05-03 4 views
-4

include_onceについてのドキュメントを読むと、それがすでに含まれている場合、問題のファイルが再組み込みされないということが基本的に言われています。PHPのinclude_onceは、そのファイルの静的な「インスタンス」にすぎませんか?

これを私の頭の中でスクリプトの静的インスタンスと同じにすることはできますか?それが私の道を邪魔するでしょうか?

EDIT

は、私は非常によくそれを理解し、include_onceのチュートリアルを探しているわけではありません。このアイデアに静的メンバーのプロパティと特性を概念的に付けることができるかどうかを知りたいと思います。

EDIT 2

downvotersは説明する気にしませんか?概念的な質問であり、明確な答えです。

+0

編集の回答:いいえ – Kaii

+0

これを組み込むと、値とプロパティはそのストリームに残るはずです。したがって、静的な値を持つ関数を呼び出していて、そのスクリプトを後で同じストリームに組み込むと、そのスクリプトは再びインクルードされないので、静的な値は維持されます。不確かな場合は、箱を突き刺す。 – Anthony

+0

あなたは両方とも違ったことを言っているようですね。 – Ben

答えて

2

私は実際の関数がどのように動作するかわからないんだけど、それについて考えるための最良の方法は次のとおりです。

「このファイルは、以前にこのストリームで必要/含める/それを必要とする必要が含まれていない場合再び。"

クラスや関数がすでに定義されているので、クラスや関数を「再定義する」ファイルを含めないようにすることが重要です。

重要なことは、スクリプト(および途中のインクルードスクリプト)が開始と終了を持つという考えです。 include_onceへの呼び出しは、スクリプト全体の開始以降、そのファイルがすでに含まれているかどうかを確認します。もしそれがあったとしても、それを再び含むことは気にせず、最初にインクルードされていたファイルから消えてしまいます。

スクリプトが完了すると(作業は残っておらず、ストリームは閉じられ、中断され、中断されます)、プロセスの再開は、ファイルの最初のinclude/include_onceを最初のインクルードとして扱います。初めて新しいのスクリプトが実行されてから初めて組み込まれました。その場合は、正方形に戻って、すべての値をデフォルトまたは未設定に戻します。

+0

だから、それは静的なものと考えることはできません。なぜなら、グローバルなコンテキストがなく、ローカルでしか実現されず、持続しないからです。ありがとう、助けて! – Ben

+0

PHPの 'SPL'ライブラリが導入したPub/Sub技法を見てください。クロスセッションにアクセスするために値を隠す方法がありますが、ちょっと洗練されています。 – Anthony

+0

OK、歓声。今日の概念的な質問。あまりにもうまくいっていませんでしたが、最終的にはっきりと答えました。 – Ben

関連する問題