Global code is bad code - PHP's sessions included
If you rely on sessions in your application, just one call to session_destroy(), like that without any arguments, all your storage is reset. Doesn’t matter if it’s a shopping cart, logged in user’s surfing session, message alert, et cetera.
The only viable solution is to user namespaces like$_SESSION['userSession'] (with loggedInSince as possible key), $_SESSION['shoppingCart'] like such:
<ul>
<li>product
<ul>
<li>id => 4</li>
<li>quantity => 5</li>
</ul>
</li>
</ul>
Thus, session_destroy() becomes unset($_SESSION['namespace']).