Расклад такой: где-то выше возникновения нотиса есть блок проверок в результате которых определяется логический "флажек" типа "обнаружен такой-то факт". А в месте возникновения нотиса вместо повторной сложной проверки тестируется только этот флажек. Все вродебы красиво. Засада в том, что флажек может быть не только true и false, но может быть неопределен совсем — трехзначная логика.
Чтобы логика стала двухзначной, можно в начале кода выставить значение по-умолчанию $some_flag=false и нотис пропадет. Правда код из-за множества флажков может сильно распухнуть. На самом деле нас интересует только тот случай, когда "обнаружен такой-то факт". То есть когда флажек определен и равен true!!! Значит проверку
if ($some_fact)
надо заменить на
if (isset($some_fact) && $some_fact)
или более компактно
if (!empty($some_fact))
Функция empty возвращает истину для 0, false или '0' и неопределенной переменной. В нашем случае — то, что надо.
Я очень люблю и часто использую empty. Потому что знаю как она работает :)
Читать про функцию: http://ru.php.net/manual/en/function.empty.php