2012-09-16 60 views
0

在PHP中,如果我通過ini_set設置內存100M,然後我設置set_time_limit(0);這是否意味着我的PHP內存分配永遠是100M(直到我重新啓動Apache)?設置內存高,然後set_time_limit爲0

+0

的ini_set是設置PHP配置變量的函數,你需要告訴我們什麼樣的配置變量你要爲100M到。 – Nelson

回答

1

不會在腳本執行結束時將其重置回原始位置。

From the manual:

字符串函數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; 
} 
+0

非常有趣,不知何故,我的本地主機停留在100M下,用於執行下一個腳本,每次腳本在最後一個增量上增加100M。 – doNotCheckMyBlog

相關問題