Ответ 1
Ну, ответ довольно прост. isset ($ var) возвращает, существует или нет переменная, и не имеет значения null, где! $var сообщает вам, является ли эта переменная истиной или что-то, что оценивается как true (например, строка). Кроме того, используя! $Var выведет уведомление о том, что вы используете переменную undefined, тогда как isset этого не сделает.
Имейте в виду: это две разные вещи:
<?php
var_dump( isset( $foo ) ); // false.
var_dump( !$foo ); // true, but with a warning.
$foo = false;
var_dump( isset( $foo ) ); // true
var_dump( !$foo ); // true.