skip to Main Content

I am trying to reset the Session with the below code:

<?= 
$_SESSION['pettySuccess']??''; 
(($_SESSION['pettySuccess']??'')=='') ?'': unset($_SESSION['pettySuccess']); 
?>

the idea behind my code is for the pettySuccess session to reset the session when it doesn’t evaluate as ‘ ‘
but here I am getting a syntax error. The weird thing is when I changed the unset() method
to session_unset(), I dont have a syntax error anymore, the error I got now was that ‘the session_unset() does not accept any attributes’ and my intention was never to reset all my session variables.

2

Answers


  1. unset() is a statement and not a function, so it cannot be used directly within a ternary operator. You can use the following code:

    if (isset($_SESSION['pettySuccess']) && $_SESSION['pettySuccess'] !== '') {
        unset($_SESSION['pettySuccess']);
    }
    
    Login or Signup to reply.
  2. I don’t know what your business logic is, but I suspect all you need is:

    unset($_SESSION['pettySuccess']);
    

    unset() is a language construct so it’s able to detect and ignore missing variables (something that regular functions cannot do), and it actually does (yes, it’s unfortunately not documented).

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search