Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der Unterschied zwischen session_unset() und session_destroy() in PHP?

Was ist der Unterschied zwischen session_unset() und session_destroy() in PHP?

青灯夜游
青灯夜游Original
2019-03-15 10:34:414864Durchsuche

Es gibt zwei sehr ähnliche Funktionen session_unset() und session_destroy() in PHP. Beide werden zum Löschen aller für die Sitzung registrierten Variablen verwendet. Was sind also die Unterschiede zwischen ihnen? Der folgende Artikel stellt Ihnen den Unterschied zwischen session_unset() und session_destroy() vor. Ich hoffe, er wird Ihnen hilfreich sein. [Video-Tutorial-Empfehlung: PHP-Tutorial]

Was ist der Unterschied zwischen session_unset() und session_destroy() in PHP?

session_unset()-Funktion

session_unset()Die Funktion löscht nur die Variablen in der Sitzung, die Sitzung existiert noch; sie schneidet nur die Daten ab.

Grundlegende Syntax:

session_unset( void )

session_destroy()-Funktion

session_destroy()Die Funktion zerstört alle mit dem verknüpften Dateien aktuelle Sitzungsdaten; es werden jedoch weder globale Variablen, die mit der Sitzung verknüpft sind, noch das Sitzungscookie gelöscht.

Grundlegende Syntax:

session_destroy( void )

Ähnliche Themenempfehlungen: PHP-Sitzung (einschließlich Bilder, Texte, Videos, Fälle)

Der Unterschied zwischen session_unset() und session_destroy()

Das Folgende ist ein Codebeispiel, um den Unterschied zwischen session_unset() und session_destroy zu sehen ()

Speichern Sie zuerst die Sitzung mit der Datei session.php

<?php 
header("content-type:text/html;charset=utf-8");
// 启动会话
session_start(); 
  
//显示会话ID
echo session_id(); 
  
// 检查会话名称是否存在
if( isset($_SESSION[&#39;name&#39;]) ) { 
    echo &#39;<br>&#39; . &#39;会话还有效.&#39;; 
} 
else { 
    echo &#39;<br>&#39; . &#39;会话已销毁&#39;; 
} 
  
$_SESSION[&#39;name&#39;] = &#39;PHP中文网!&#39;; 
$_SESSION[&#39;website&#39;] = &#39;www.php.cn&#39; ; 
  
?>

Ausgabe:

Was ist der Unterschied zwischen session_unset() und session_destroy() in PHP?

Beispiel 1: Verwendung der Funktion session_unset()

Vor Verwendung der Funktion session_unset() werden zunächst der Name und die Website angezeigt.

<?php 
header("content-type:text/html;charset=utf-8");
// 启动会话
session_start(); 
  
// 检查会话名称是否存在
if( isset($_SESSION[&#39;name&#39;]) ) { 
    echo &#39;<br>&#39; . &#39;会话还有效&#39;.&#39;<br>&#39;; 
} 
else { 
    echo &#39;<br>&#39; . &#39;会话已销毁&#39;; 
} 
echo $_SESSION[&#39;name&#39;].&#39;<br>&#39;; 
echo $_SESSION[&#39;website&#39;].&#39;<br>&#39;; 
  
?>

Ausgabe:

Was ist der Unterschied zwischen session_unset() und session_destroy() in PHP?

Nach der Verwendung der session_unset()-Funktion wurden die verwendeten Variablen wie „Name“ und „Website“ zerstört.

<?php 
header("content-type:text/html;charset=utf-8");
// 启动会话
session_start(); 
  
// 检查会话名称是否存在
if( isset($_SESSION[&#39;name&#39;]) ) { 
    echo &#39;<br>&#39; . &#39;会话还有效&#39;.&#39;<br>&#39;; 
} 
else { 
    echo &#39;<br>&#39; . &#39;会话已销毁&#39;; 
} 
echo $_SESSION[&#39;name&#39;].&#39;<br>&#39;; 
echo $_SESSION[&#39;website&#39;].&#39;<br>&#39;; 
// 使用session_unset()函数
session_unset(); 
?>

Ausgabe:

Was ist der Unterschied zwischen session_unset() und session_destroy() in PHP?

Beispiel 2: Verwendung der Funktion „session_destroy()“

Funktion „session_destroy()“ zerstört gesamte Sitzung, anstatt Variablen zu zerstören. Wenn session_start() aufgerufen wird, setzt PHP ein Sitzungscookie im Browser. Außerdem müssen wir die Cookies löschen, um die Sitzung vollständig zu zerstören.

<?php 
header("content-type:text/html;charset=utf-8");
// 启动会话
session_start(); 
  
// 检查会话名称是否存在
if( isset($_SESSION[&#39;name&#39;]) ) { 
    echo &#39;<br>&#39; . &#39;会话还有效&#39;.&#39;<br>&#39;; 
} 
else { 
    echo &#39;<br>&#39; . &#39;会话已销毁&#39;; 
} 
  
echo $_SESSION[&#39;name&#39;].&#39;<br>&#39;; 
echo $_SESSION[&#39;website&#39;].&#39;<br>&#39;; 
  
$_SESSION = array(); 
  
// 如果想要终止会话,需要删除会话cookie。
// 注意:这将破坏会话,而不仅仅是会话数据!
if (ini_get("session.use_cookies")) { 
    $params = session_get_cookie_params(); 
    setcookie(session_name(), &#39;&#39;, time() - 42000, 
        $params["path"], $params["domain"], 
        $params["secure"], $params["httponly"] 
    ); 
} 
  
// 最后,销毁会话。
session_destroy(); 
  
?>

Ausgabe:

Was ist der Unterschied zwischen session_unset() und session_destroy() in PHP?

Erklärung: Beim Ausführen der echo session_id();-Anweisung können Sie sehen, dass es eine andere Sitzungs-ID gibt, was bedeutet vorherige Die Sitzung wurde zerstört, ebenso wie alle Variablen und Cookies. Da alle Variablen zerstört werden, wird beim Erkennen, ob die Sitzung vorhanden ist, die bedingte Ausgabe „Session has been destroy“ (Sitzung wurde zerstört) von else ausgegeben.

Was ist der Unterschied zwischen session_unset() und session_destroy() in PHP?

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

Verwandte Lernempfehlungen: PHP-Programmierung vom Einstieg bis zur Beherrschung

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen session_unset() und session_destroy() in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn