Aktueller Standort: Startseite> Neueste Artikel> Die Differenz und Verbindung zwischen Session_register_Shutdown () und Register_Shutdown_Function ()

Die Differenz und Verbindung zwischen Session_register_Shutdown () und Register_Shutdown_Function ()

M66 2025-05-25

Bei der PHP -Entwicklung ist es sehr wichtig, den Vorgang zu bewältigen, wenn ein Programm geschlossen ist, insbesondere die Ressourcenfreigabe und die Datenspeicherung. Die beiden Funktionen Session_register_Shutdown () und register_shutdown_function () werden häufig erwähnt, aber ihre Funktionen, Verwendung und anwendbare Szenarien sind unterschiedlich. In diesem Artikel werden ihre Unterschiede, Verbindungen und Anwendungen im Detail eingeführt.


1. Funktion Einführung

1. Register_Shutdown_Function ()

Dies ist eine gemeinsame Funktion, die von PHP bereitgestellt wird und zur Registrierung einer Rückruffunktion verwendet wird, die nach der Ausführung des PHP -Skripts automatisch aufgerufen wird. Sie können mehrere Rückrufe registrieren, und die Antragsreihenfolge bestimmt die Auftragsreihenfolge.

Beispielcode:

 <?php
register_shutdown_function(function() {
    echo "Das Skript wird ausgeführt,Führen Sie einen Aufräumvorgang durch。";
});
?>

Wenn das PHP -Skript ausgeführt wird, wird diese registrierte Rückruffunktion ausgeführt, unabhängig davon, ob es normal endet oder ein tödlicher Fehler auftritt.


2. Session_register_Shutdown ()

Dies ist eine Funktion, die speziell für das Sitzungsmodul verwendet wird. Es ruft Register_Shutdown_Function () in intern und automatisch die Funktion zum Herunterfahren der Sitzung von Sitzungen auf, um sicherzustellen, dass PHP am Ende des Skripts Sitzungsdaten korrekt schließt und speichert.

Nach PHP 5.4 wurde diese Funktion als verworfen markiert und wird nicht empfohlen, sie weiter zu verwenden.

Beispielcode:

 <?php
session_start();
session_register_shutdown();
$_SESSION['name'] = 'Zhang San';
?>

Nach dem Aufrufen führt das Sitzungsmodul am Ende des Skripts automatisch einen Schreibvorgang durch.


2. Der Unterschied zwischen den beiden

Aspekt Session_register_Shutdown () Register_Shutdown_Function ()
Funktionelle Positionierung Speziell verwendet, um automatisch registrierte Sitzungsfunktionen zu registrieren Allgemeine Rückruffunktionen registrieren, die aufgerufen werden, wenn ein Skript geschlossen ist
Parameter Die Registrierung wird automatisch intern ohne Parameter abgeschlossen Die Rückruffunktion muss übergeben werden, mehrere Parameter können übergeben werden
Gebrauchsbereich Nur Sitzungsmodul Willkürlicher Abruf für Skripte
Kompatibilität PHP 5.4 wird aufgegeben und nicht empfohlen Häufige Unterstützung moderner PHP -Versionen
Handlungszeit Wenn das Skript geschlossen ist, stellen Sie sicher, dass Sitzungsdaten geschrieben werden. Aufrufen von benutzerdefinierten Rückruffunktionen, wenn das Skript geschlossen ist

3. Die Verbindung zwischen den beiden

Session_register_Shutdown () ist tatsächlich eine Kapselung von Register_Shutdown_Function () , das speziell verwendet wird, um sicherzustellen, dass Sitzungsdaten am Ende des Skripts sicher geschrieben werden können. Beide werden während der PHP -Ausführungsstromablaufphase ausgelöst und gehören zum Mechanismus des Skript -Shutdown -Hooks.

Einfach sagen:

  • Session_register_Shutdown () = Register_Shutdown_Function () + Sitzungslogik

  • Verwenden Sie Session_register_Shutdown (), damit Entwickler Sitzungsvorgänge manuell verwalten können


4. Verwenden Sie Szenarien

1. Register_Shutdown_Function ()

  • Protokollierung, Reinigungsressourcen, Schließen von Datenbankverbindungen und andere Vorgänge sind am Ende des Skripts erforderlich.

  • Nach dem Umgang mit Ausnahmen oder tödlichen Fehlern durchgeführt.

  • Passen Sie jede Funktion an, die ausgeführt werden muss, wenn das Skript geschlossen ist.

Beispiel:

 <?php
register_shutdown_function(function() {
    error_log("Ende der Skriptausführung,Schreiben Sie an Protokoll");
});
?>

2. Session_register_Shutdown ()

  • Nur für die automatische Registrierungssitzung der alten Versionen von PHP (5.3 und zuvor) geeignet.

  • Es wird nicht empfohlen, die neue Version zu verwenden. Es wird empfohlen, Session_Write_Close () auf Call zu rufen oder sich auf PHP zu verlassen, um automatisch zu schreiben.


5. Zusammenfassung

Funktion Empfohlen Hauptfunktionen Empfehlungen für den Gebrauch
Session_register_Shutdown () Nicht empfohlen Registrieren Sie automatisch Sitzungsschreiben Sie einen Rückruf schreiben Nur zur Kompatibilität mit alten Versionen verwendet, die von modernen Projekten veraltet sind
Register_Shutdown_Function () empfehlen Registrieren Sie jedes Skript, um die Rückruffunktion zu schließen Breiter Anwendungsbereich, flexibel und stabil

In der modernen PHP -Entwicklung wird empfohlen, Session_write_close () direkt bei der Behandlung von Sitzungen zu verwenden. Für andere Reinigungsarbeiten während des Schlusses wird empfohlen, Register_Shutdown_Function () zu gewährleisten, um die Codekompatibilität und Flexibilität zu gewährleisten.


Zusätzlicher Hinweis: Beispiel für URL -Domänenname

Wenn der Code beispielsweise URLs umfasst:

 <?php
echo "Besuchen Sie die Website: http://example.com/path";
?>

Es sollte ersetzt werden durch: