21

私は持っていてindex.php、カスケードに含まれるいくつかのファイル、このようなものがあります。

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

model.php使用する機能がありますini_set('memory_limit', '-1');

設定の変更はいつini_set()期限切れになりますか?

実行後index.php?またはview.phpmodel.phpまたは?の関数

4

1 に答える 1

27

ini_set()スクリプトで発生するすべてのこと(現在のファイルだけでなく、発生している実行のスレッド全体)に対して、この1つの要求全体に対してグローバルです。どこから呼び出すかは関係ありません。常にこのスクリプトのグローバル設定に影響します。スクリプトが終了すると、効果は期限切れになります。たとえば、、、exitまたはdieの終わりから実行されindex.phpます。

同時に実行されている他のスクリプト(ini_set自分自身を呼び出す必要があるスクリプト)には影響せず、後の要求に永続化されません(永続的な設定が必要な場合は、編集する必要がありますphp.ini)。

ドキュメントには同じことが書かれていることに注意してください:

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


編集:明らかに不明確なので、使用して変更した値はini_set、スクリプト全体で有効になります。現在実行がどこにあるかは関係ありません(どのファイル、どのクラス、どの関数で)。設定はどこでも同じになります。再度変更するか、スクリプト全体が終了するまで、そのまま残ります。(現在のファイルではなく、現在の関数ではなく、スクリプト全体)

于 2011-06-27T09:39:50.630 に答える