Il existe deux fonctions très similaires session_unset() et session_destroy() en PHP. Toutes deux sont utilisées pour supprimer toutes les variables enregistrées dans la session, alors quelles sont les différences entre elles ? L'article suivant vous présentera la différence entre session_unset() et session_destroy(). J'espère qu'il vous sera utile. [Recommandation du didacticiel vidéo : Tutoriel PHP]
Fonction session_unset()
session_unset()
La fonction supprime uniquement les variables de la session, la session existe toujours, elle tronque uniquement les données.
Syntaxe de base :
session_unset( void )
Fonction session_destroy()
session_destroy()
La fonction détruira l'association avec la session en cours toutes les données ; mais cela ne supprime aucune variable globale associée à la session, ni le cookie de session.
Syntaxe de base :
session_destroy( void )
Recommandations de sujets connexes : session php (y compris des images, des vidéos, des cas)
La différence entre session_unset() et session_destroy()
Jetons un coup d'œil à la différence entre session_unset() et session_destroy() via exemples de code
Enregistrez d'abord la session à l'aide du fichier session.php
<?php header("content-type:text/html;charset=utf-8"); // 启动会话 session_start(); //显示会话ID echo session_id(); // 检查会话名称是否存在 if( isset($_SESSION['name']) ) { echo '<br>' . '会话还有效.'; } else { echo '<br>' . '会话已销毁'; } $_SESSION['name'] = 'PHP中文网!'; $_SESSION['website'] = 'www.php.cn' ; ?>
Sortie :
Exemple 1 : Utilisation de la fonction session_unset()
Avant d'utiliser la fonction session_unset(), le nom et le site Web seront affichés en premier.
<?php header("content-type:text/html;charset=utf-8"); // 启动会话 session_start(); // 检查会话名称是否存在 if( isset($_SESSION['name']) ) { echo '<br>' . '会话还有效'.'<br>'; } else { echo '<br>' . '会话已销毁'; } echo $_SESSION['name'].'<br>'; echo $_SESSION['website'].'<br>'; ?>
Sortie :
Après avoir utilisé la fonction session_unset(), elle a détruit les variables telles que « nom » et « site Web » qui étaient utilisées .
<?php header("content-type:text/html;charset=utf-8"); // 启动会话 session_start(); // 检查会话名称是否存在 if( isset($_SESSION['name']) ) { echo '<br>' . '会话还有效'.'<br>'; } else { echo '<br>' . '会话已销毁'; } echo $_SESSION['name'].'<br>'; echo $_SESSION['website'].'<br>'; // 使用session_unset()函数 session_unset(); ?>
Sortie :
Exemple 2 : Utilisation de la fonction session_destroy()
fonction session_destroy() Détruira toute la session au lieu de détruire les variables. Lorsque session_start() est appelé, PHP définit un cookie de session dans le navigateur. Nous devons également supprimer les cookies pour détruire complètement la session.
<?php header("content-type:text/html;charset=utf-8"); // 启动会话 session_start(); // 检查会话名称是否存在 if( isset($_SESSION['name']) ) { echo '<br>' . '会话还有效'.'<br>'; } else { echo '<br>' . '会话已销毁'; } echo $_SESSION['name'].'<br>'; echo $_SESSION['website'].'<br>'; $_SESSION = array(); // 如果想要终止会话,需要删除会话cookie。 // 注意:这将破坏会话,而不仅仅是会话数据! if (ini_get("session.use_cookies")) { $params = session_get_cookie_params(); setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"] ); } // 最后,销毁会话。 session_destroy(); ?>
Sortie :
Explication : lors de l'exécution de l'instruction echo session_id(); signifie que la session précédente a été détruite et que toutes les variables et cookies ont été détruits. Étant donné que toutes les variables sont détruites, lors de la détection de l'existence de la session, elle ira à la sortie conditionnelle else « La session a été détruite ».
Remarque : Si vous souhaitez mettre fin à la session, veuillez également supprimer le cookie de session. Cela détruira la session, pas seulement les données de session.
Recommandations d'apprentissage associées : Programmation PHP de l'entrée à la maîtrise
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!