ini_restore
(PHP 4, PHP 5, PHP 7, PHP 8)
ini_restore — 恢复配置选项的值
说明
ini_restore(string
$varname
): void恢复指定的配置选项到它的原始值。
参数
-
varname
-
配置选项名称。
返回值
没有返回值。
范例
示例 #1 ini_restore() 例子
<?php
$setting = 'y2k_compliance';
echo 'Current value for \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;
ini_set($setting, ini_get($setting) ? 0 : 1);
echo 'New value for \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;
ini_restore($setting);
echo 'Original value for \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;
?>
以上例程会输出:
Current value for 'y2k_compliance': 1 New value for 'y2k_compliance': 0 Original value for 'y2k_compliance': 1

User Contributed Notes 1 note
Anonymous ¶
6 years ago
If like me you thought ini_restore() would restore to the most recent setting rather than the startup value, you could use this.
<?php
/**
* Executes a function using a custom PHP configuration.
*
* @param array $settings A map<ini setting name, ini setting value>.
* @param callable $doThis The code to execute using the given settings.
* @return mixed Returns the value returned by the given callable.
*/
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;
}
?>