在 PHP 中,如果我通过设置内存 100Mini_set
然后我设置set_time_limit(0);
这是否意味着我的 PHP 内存分配永远是 100M(直到我重新启动我的 Apache)?
问问题
1131 次
1 回答
1
在脚本执行结束时不会将其重置为原始状态。
字符串 ini_set ( 字符串 $varname , 字符串 $newvalue )
设置给定配置选项的值。配置选项将在脚本执行期间保留此新值,并将在脚本结束时恢复。
并被set_time_limit(0);
同等对待。
例子:
// 1. Script starts
echo ini_get('memory_limit');//128M
// 2. We set a new limit the script will now have 100M
ini_set('memory_limit','100M');
echo ini_get('memory_limit'); //100M
die;
// 3. Script ends now its set back to 128M
它set_time_limit(0);
只是告诉脚本不要超时,但说你要set_time_limit(0);
在循环中使用,然后在每次迭代中,它的内部计数器一遍又一遍地设置为 0。
因此,如果您要set_time_limit(1);
在循环中使用,只要循环的每次迭代持续时间不超过 1 秒,那么它仍然不会超时,因为set_time_limit(n);
每次迭代都会将内部超时计数器重置为 0。
1秒后不超时的示例:
for($i=0;$i<=10;$i++){
set_time_limit(1);
usleep(999998); //2micro seconds from a second
echo $i;
}
于 2012-09-16T23:52:24.740 回答