У меня был 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 ?
ini_set() является глобальным для всего, что происходит в скрипте (а не только из текущего файла: весь поток выполнения, который происходит), для всего этого запроса; не имеет значения, откуда вы его вызываете, это всегда будет влиять на глобальные настройки для этого скрипта. Эффект истекает, когда ваш скрипт заканчивается – например, через exit , die или завершение конца index.php .
Это не повлияет ни на какие другие скрипты, выполняемые одновременно (они должны сами вызвать ini_set ), и он не будет сохраняться в более поздних запросах (если вам нужны постоянные настройки, вам нужно отредактировать php.ini ).
Обратите внимание, что документация говорит то же самое :
Устанавливает значение данного параметра конфигурации. Опция конфигурации сохранит это новое значение во время выполнения скрипта и будет восстановлена при завершении скрипта.
Изменить: поскольку это, по-видимому, неясно: значение, которое вы изменяете с помощью ini_set будет действительным для всего скрипта. Неважно, где выполняется исполнение (в каком файле, в каком классе, в какой функции); настройка будет одинаковой, везде. Он останется таким, пока вы его не измените, или пока весь скрипт не завершится. (а не текущий файл, а не текущая функция, весь скрипт)