My Code:
$a = [];
isset($a[0]) and unset($a[0]);
it shows "syntax error, unexpected 'unset' (T_UNSET)"
but
$a = [];
isset($a[0]) and exit();
it works!
Both of exit() and unset() are returning no value. Why does one work but not the other?
unsetis a language construct, not a real function (this is why you getT_UNSETand not a more generic term), so it doesn't play by the same rules as a normal function would.issetandexitare also language constructs, but they behave more like normal functions.