Start · Sprachen · PHP · Referenz · ini_restore

ini_restore

Funktion

Setzt eine PHP-Konfigurationsoption auf ihren ursprünglichen Wert zurück, der in der <code>php.ini</code> oder beim Skriptstart gültig war.

seit PHP 4.0.0 Kategorie: misc

Signatur

ini_restore(string $option): void

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

Typ
void
Beschreibung
Die Funktion gibt keinen Rückgabewert zurück.

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"
1 0 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();
Aktuelles Zeitlimit: 300 Sekunden Wiederhergestelltes Zeitlimit: 30 Sekunden

// 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.