21

I've had index.php and several files which cascading include,something like this.

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

In model.php I have a function using ini_set('memory_limit', '-1');

When will the ini_set() change of the setting expire?

After executed index.php? Or view.php? Or the function in model.php?

4

1 回答 1

27

ini_set()对于脚本中发生的所有事情都是全局的(不仅仅是当前文件:正在发生的整个执行线程),对于整个一个请求;不管你从哪里调用它,它总是会影响这个脚本的全局设置。当您的脚本终止时,效果将过期 - 例如,通过exitdie或运行结束index.php

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

请注意,文档说了同样的话

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


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

于 2011-06-27T09:39:50.630 回答