ini_set()效果范围?

时间:2011-06-27 09:33:39

标签: php php-ini

我有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 个答案:

答案 0 :(得分:21)

对于整个请求,

ini_set()对于脚本中发生的所有内容(不仅仅是当前文件:正在发生的整个执行线程)都是全局;无论您何时调用它,它都将始终影响此脚本的全局设置。当您的脚本终止时,效果将会过期 - 例如通过exitdie或在index.php的结尾处运行。

它不会影响同时运行的任何其他脚本(那些需要自己调用ini_set的脚本),并且它不会持久存储到以后的请求中(如果您需要持久设置,则需要编辑php.ini

请注意documentation says the same thing

  

设置给定配置选项的值。配置选项将在脚本执行期间保留此新值,并将在脚本结束时恢复。


编辑:由于显然不清楚:使用ini_set更改的值对整个脚本开始有效。当前执行的位置无关紧要(在什么文件中,在什么类中,在什么函数中);到处都是相同的设置。它将保持不变,直到您再次更改它,或直到整个脚本终止。 (不是当前文件,不是当前函数;整个脚本)