PHPの変数がnullでも宣言されているかどうかの判定方法

$a = null;

isset($a)   // ヌルがセットされいているのでfalseになってしまう。
is_null($a) // trueになるが$a=nullの宣言がなくてもtrueになってしまう。

nullでも宣言がないと
PHP error "Notice: Undefined variable"
のエラーが出るので内部的には判定できているようです。

取り合えず応急処置として下記のように対応。

http://php.benscom.com/manual/ja/function.array-key-exists.php:array_key_existsを使う。

$a[0] = null;

array_key_exists(0, $a) // trueになる。宣言がない場合はちゃんとfalseになる。


配列を使わずに変数だけで処理出来る方法はあるのだろうか。