isset()は値がnullの場合にもfalseを返す

慣れの問題なのでしょうが、やっぱりこういう仕様を見るたびにゲンナリします。

以下はPHPマニュアルのisset()の説明の抜粋です。

説明
bool isset ( mixed $var [, mixed $var [, $... ]] )

変数がセットされているかどうかを調べます。

変数が、unset() により割当を解除された場合、
何も値が設定されていない状態になります。
NULLに設定されている変数を調べた場合、
isset() はFALSEを返します。 

シンボルがあるかどうかだけを知るには、array_key_exists()とGLOBALS配列を使うのがよさそうです。