Signatur
Beschreibung
ini_restore() stellt den Wert einer PHP-Konfigurationsoption wieder her, der vor einer temporären Änderung per ini_set() gültig war. Typischerweise ist das der Wert aus der php.ini-Datei oder aus der Server-Konfiguration zum Zeitpunkt des Skriptstarts.
Die Funktion ist besonders nützlich, wenn eine Option nur für einen bestimmten Codeabschnitt geändert werden soll und danach wieder der Standardzustand gelten soll – beispielsweise nach dem Anpassen von error_reporting, max_execution_time oder default_charset innerhalb einer Funktion oder Bibliothek.
Im Gegensatz zu einem manuellen Zurückschreiben per ini_set() müssen Sie den Originalwert nicht selbst zwischenspeichern – ini_restore() übernimmt das automatisch. Es werden nur Optionen unterstützt, die im Modus PHP_INI_USER oder PHP_INI_ALL änderbar sind.
Die Funktion gibt keinen Wert zurück. Wird ein ungültiger oder nicht änderbarer Optionsname übergeben, passiert stillschweigend nichts.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $option Pflicht | string | Der Name der PHP-Konfigurationsoption (z. B. 'error_reporting', 'display_errors'), die auf ihren ursprünglichen Wert zurückgesetzt werden soll. |
Rückgabewert
Beispiele
Fehler-Reporting temporär deaktivieren und anschließend wiederherstellen
<?php
// Aktuellen Wert anzeigen
echo ini_get('display_errors') . PHP_EOL; // z. B. "1"
// Temporär deaktivieren
ini_set('display_errors', '0');
echo ini_get('display_errors') . PHP_EOL; // "0"
// Originalwert wiederherstellen
ini_restore('display_errors');
echo ini_get('display_errors') . PHP_EOL; // wieder "1"
Maximale Ausführungszeit für einen langen Task anpassen und zurücksetzen
<?php
function longRunningTask(): void
{
// Zeitlimit für diesen Abschnitt erhöhen
ini_set('max_execution_time', '300');
// ... zeitintensive Operationen ...
echo 'Aktuelles Zeitlimit: ' . ini_get('max_execution_time') . ' Sekunden' . PHP_EOL;
// Nach Abschluss auf ursprünglichen Wert zurücksetzen
ini_restore('max_execution_time');
echo 'Wiederhergestelltes Zeitlimit: ' . ini_get('max_execution_time') . ' Sekunden' . PHP_EOL;
}
longRunningTask();
// Wichtig · Fallstricke
Änderbarkeit beachten: ini_restore() funktioniert nur für Optionen mit dem Änderungsmodus PHP_INI_USER oder PHP_INI_ALL. Optionen, die nur über php.ini oder .htaccess gesetzt werden können (PHP_INI_SYSTEM, PHP_INI_PERDIR), können zur Laufzeit weder geändert noch wiederhergestellt werden.
Bei einem unbekannten oder ungültigen Optionsnamen verhält sich die Funktion still – es wird weder eine Warnung noch ein Fehler ausgegeben. Prüfen Sie ggf. den Optionsnamen vorher mit ini_get().
Am Ende eines PHP-Skripts werden alle per ini_set() gemachten Änderungen automatisch verworfen, sodass ini_restore() vor allem innerhalb eines Skripts relevant ist, wenn der geänderte Wert nicht den Rest des Skriptlaufs beeinflussen soll.