Вы не правы, они работаю по разному. Вот тут вы можете изучить таблицу как работают разные методы проверок empty, is_null, isset, boolean, if($x) -
php.net/manual/ru/types.comparisons.php
Что использовать нужно исходить из логики вашего кода и этой таблицы.