スポンサーリンク

「PHP」nullはisset() === falseなのか?

概要

またまた勘違いしていましたので記述します。

結果

falseです。

理屈(憶測)

// 定義したが中身は存在しない。
$arg = null;

$result = isset($arg);    // false
// 定義(set)しているのでtrueが返ると思っていました・・・。
// ちなみにJavaScriptではそれで合っているようです・・・。

$result= empty($arg2);    // true
// undifined(未定義)なのでエラーになると思っていました・・・。

ジレンマ・・・。

多言語をする身としては、PHPもやっと厳格になってきたのかと思っていましたが、この辺は違うようです。

私は癖で、なるべく変数は宣言して初期値を与えるのですが、他人が作った古いソース(特にPHP4, 5)を移植すると頭が痛くなります。

このことからissetとemptyは特に自覚を持って使用することが望まれますね。