ini_set () сфера действия? - PullRequest
18 голосов
/ 27 июня 2011

У меня было 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?

1 Ответ

22 голосов
/ 27 июня 2011

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

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

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

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


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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...