論点変わっているよ

NULLチェックにis_null使う方法が紹介されていますが、個人的にはNULLチェックは!issetでやりたい派です。

理由はis_nullだと変数が未定義の場合にnoticeエラーが出るからです。

「変数の値がnull」かどうか調べるという話と未定義変数を混ぜると論点が変わるんじゃないでしょうか?

ちゃんと変数は全部定義するもんだよー、というCやJava気質な人は良いと思うんですがスクリプト言語だと変数名をあらかじめ全部定義したりしない人が多いはず!

多い少ないのゾーンがあいまいですが,ちゃんと実装する人はスクリプト言語でも未定義変数の取り扱いは厳しいです.
実装時における潜在バグの多くの原因はこれに相当するでしょうから.

※追記

というかすっかりボケていましたが,正確には「未初期化変数」ですね(未初期化定数も該当すると思います).
どの言語を使っていようと「未初期化変数」は非常にリスクです.C言語が挙がっていたのでうろ覚えの能力で軽く書いてみます.

int baz(int bar);  //  プロトタイプ宣言ってこんなだっけ(笑

foo() {
    int bar;

    return baz(bar);  //  こんなコード普通警告でますが
}

PHPで未初期化変数を使うというのはこれと同じことをしています.

foo() {
    return baz($bar);  //  error_reportingをE_ALLにしてたらE_NOTICE発生
}

この狭い話だけでいうと「どの道具(言語)は関係なく,目的に対してどれ位必要なレベル(品質)で使う(設計,実装)ことができるか」ということだと思います.

余談ですが,この話以前foo[id]がfoo['id']より遅いという話がありましたが,早い遅いではなく,「id」が文字列をあらわしているならクオートするのは「当たり前」の話で省略したときとの比較などする必要もない話.と当時思ったのと似た印象があります.