Подтвердить что ты не робот

Ini_set() область действия?

У меня было index.php и несколько файлов, которые включают каскадирование, что-то вроде этого.

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

В model.php У меня есть функция, использующая ini_set('memory_limit', '-1');

Когда истечет ini_set() истечение срока действия?

После выполнения index.php? Или view.php? Или функция в model.php?

4b9b3361

Ответ 1

ini_set() глобальный для всего, что происходит в script (а не только в текущем файле: весь поток выполнения, который происходит), для всего этого запроса; не имеет значения, откуда вы его вызываете, оно всегда будет влиять на глобальные параметры для этого script. Эффект истечет, когда ваш script завершается - например. через exit, die или завершение конца index.php.

Он не будет влиять на другие запущенные одновременно сценарии (они должны сами вызвать ini_set), и он не будет сохраняться в последующих запросах (если вам нужны постоянные настройки, вам нужно отредактировать php.ini).

Обратите внимание, что документация говорит то же самое:

Устанавливает значение данного параметра конфигурации. Опция конфигурации сохранит это новое значение во время выполнения script и будет восстановлена ​​с завершением script.


Изменить: поскольку это, по-видимому, неясно: значение, которое вы измените с помощью ini_set, будет действительным для всего script и далее. Неважно, где выполняется исполнение (в каком файле, в каком классе, в какой функции); настройка будет одинаковой, везде. Он останется таким, пока вы не измените его снова, или пока не закончится весь script. (а не текущий файл, а не текущая функция, весь script)