如果你和我一样,认为 ini_restore() 会恢复到最近的设置而不是启动值,那么你可以使用这个。
<?php
/**
* 使用自定义 PHP 配置执行函数。
*
* @param array $settings 一张<ini 设置名称, ini 设置值> 的映射。
* @param callable $doThis 使用给定设置执行的代码。
* @return mixed 返回给定可调用对象返回的值。
*/
function ini_using_do(array $settings, callable $doThis){
foreach($settings as $name => $value){
$previousSettings[$name] = ini_set($name, $value);
}
$returnValue = $doThis();
if(isset($previousSettings)){
foreach($previousSettings as $name => $value){
ini_set($name, $value);
}
}
return $returnValue;
}
?>