2011-06-27 147 views
17

私はindex.phpとカスケードするいくつかのファイルを持っています。 model.phpini_set()の有効範囲は?

index.php -> controller.php -> model.php -> view.php 

私は、設定の変更ini_set()の有効期限が切れるときini_set('memory_limit', '-1');

を使用して機能を持っていますか?

実行後index.php?またはview.php?またはmodel.phpの機能ですか? (だけでなく、現在のファイルを:発生している実行のスレッド全体)

答えて

20

ini_set()は、スクリプト内で起こるすべてのためのグローバルあり、この全体の1つの要求のために。それはいつ呼び出すかは関係ありませんが、このスクリプトの設定は常にに影響します。スクリプトが終了すると効果は失効します。 exitdie、またはindex.phpの末尾まで実行中です。

他のスクリプト(同時にini_setを呼び出す必要がある)に影響はなく、それ以降の要求には反映されません(永続的な設定が必要な場合はphp.iniを編集する必要があります)。

与えられた設定オプションの値を設定します

documentation says the same thingこと

は注意してください。設定オプションは、スクリプトの実行中にこの新しい値を保持し、スクリプトの終了時に復元されます。


編集:それは明らかに不明であるので:あなたはini_setを使用して変更する値は、以降のスクリプト全体に対して有効となります。現在実行されている場所(ファイルの種類、クラスの種類、機能の種類など)は関係ありません。設定はどこでも同じです。もう一度変更するか、またはスクリプト全体が終了するまで、そのまま残ります。 (現在のファイルではなく、現在の関数ではなく、スクリプト全体)

+0

私はすでにドキュメントを読んだことがありますが、この関数を使用した後は関数スコープ(変数など)またはスクリプト全体に影響するのでしょうか?彼らの「スクリプト」が何を意味するのかは不明です。 – thReality

+0

@thReality:私の答えを読んだ?引用:「どこから呼び出すかは関係ありません。このスクリプトのグローバル設定には常に影響します」つまり、関数スコープには関係なく完全に影響します。 – Piskvor

+0

"起動時はどこでも問題ありません" 起動時に重要です。 "ini_setはスクリプト全体に対して有効です。"; – MTVS