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
unset()
is a statement and not a function, so it cannot be used directly within a ternary operator. You can use the following code:I don’t know what your business logic is, but I suspect all you need is:
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).