Es gibt zwei sehr ähnliche PHP-Funktionen session_destroy() & session_unset(). Beide scheinen alle in einer Sitzung registrierten Variablen zu löschen, aber es gibt einen Unterschied zwischen ihnen.

Funktion session_destroy(): Sie zerstört alle Daten, die mit der aktuellen Sitzung verbunden sind. Es setzt keine der der Sitzung zugeordneten globalen Variablen oder das Sitzungscookie zurück.

Syntax:

bool session_destroy( void )

Funktion session_unset(): Sie löscht nur die Variablen aus Session und Session existiert noch. Nur Daten werden abgeschnitten.

Syntax:

bool session_unset( void )

Beispiel 1: Dieses Beispiel speichert die Sitzung mithilfe der Datei session.php .

<?php
  
// Function to start session
session_start();
  
// Display the session id
echo session_id();
  
// Check the session name exists or not
if( isset($_SESSION['name']) ) {
    echo '<br>' . 'session is set.';
}
else {
    echo '<br>' . 'session is destroyed';
}
  
$_SESSION['name'] = 'GeeksForGeeks';
$_SESSION['email'] = 'GeeksForGeeks@email.com' ;
  
?>

Ausgabe:

Vor der Verwendung der Funktion session_unset(): Vor der Verwendung der Sitzungsfunktion werden Name und E-Mail angezeigt.

<?php
  
// Function to start session
session_start();
   
// Check the session name exists or not
if( isset($_SESSION['name']) ) {
    echo 'session is set.';
}
else {
    echo 'please set the session';
}
   
echo $_SESSION['name'].'<br>';
echo $_SESSION['email'].'<br>';
  
?>

Ausgabe:

Nach Verwendung der Funktion session_unset(): Diese Funktion zerstört die Variablen wie „Name“ und „E-Mail“, die verwendet werden.

<?php
  
// Function to start session
session_start();
   
// Check the session name exists or not
if( isset($_SESSION['name']) ) {
    echo 'session is set.' ;
}
else {
    echo 'session variables deleted';
}
  
echo $_SESSION['name'];
echo $_SESSION['email'];
  
// Use session_unset() function
session_unset();
  
?>

Ausgabe:

Funktion session_destroy(): Sie zerstört die gesamte Sitzung, anstatt die Variablen zu zerstören. Wenn session_start() aufgerufen wird, setzt PHP das Session-Cookie im Browser. Wir müssen die Cookies auch löschen, um die Sitzung vollständig zu zerstören.

Beispiel: Dieses Beispiel wird verwendet, um die Sitzung zu zerstören.

<?php
  
// Function to start session
session_start();
  
// Check the session name exists or not
if( isset($_SESSION['name']) ) {
    echo 'session is set.'.'<br>' ;
}
else {
    echo 'session is destroyed'.'<br>';
}
  
echo $_SESSION['name'].'<br>';
echo $_SESSION['email'].'<br>';
  
$_SESSION = array();
  
// If it's desired to kill the session, also
// delete the session cookie.
// Note: This will destroy the session, and
// not just the session data!
if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}
  
// Finally, destroy the session.
session_destroy();
  
?>

Ausgabe:

Bei der Ausführung der Datei session.php können Sie sehen, dass es eine andere Sitzungs-ID gibt, was bedeutet, dass die vorherige Sitzung zerstört wurde und alle Variablen und Cookies ebenfalls zerstört wurden. Da alle Variablen zerstört sind, geht PHP zur Else-Bedingungsausgabe „Sitzung ist zerstört“.

Hinweis: Wenn Sie die Sitzung beenden möchten, löschen Sie auch das Sitzungscookie. Dadurch wird die Sitzung zerstört und nicht nur die Sitzungsdaten.