proWoke
при включенном error_reporting (E_ALL) твой вопрос не возник бы .
В скриптах времен php3 и register globals on очень часто
empty использовали вместо isset, но это грязный код
и главное он медленнее работает.
Правильно .
1.Инициализировать все переменные дефолтами.
$choto=0; // сопровождать пояснениями
2. проверять существование входных переменных
и заботиться о соответствии типу, допустимым значениям,
безопасности ввода
if(isset($_GET['chtoto'])$choto=intval($_GET['chtoto']);
3. Числовые лучше проверять через сравнение
if($choto>0)
4. empty - оставить для проверки строк на пустоту
5. ИЗБЕГАТЬ построения логики
на манипулирование переменными через unset или факте того, что переменная будет определена только в какой то ветке алгоритма.
6. ЕЩЕ С ПОМОЩЬЮ isset() можно строить кеширование
function vyzyvaetsyMnogoRazSodinakovymyParametrami($x){
static $cache;
if(!isset($cache[$x])){
$value=длительная операции или запрос к субд за значением ;
$cache[$x]=$value;
}
return $cache[$x];
}