「PHPの未定義値と値の検査」というタイトルで社内勉強会を開催しました。PHPの型、未定義値、キャスト、==演算子などの知識の確認がテーマです。 まとめ ==の挙動はキモいです。できるだけ===を使いましょう。 未定義値にアクセスすると通常はNoticeが出ます。 isset関数とempty関数はNoticeが出ません。未定義値の可能性がある場合はまずどちらかでチェックしましょう。 isset関数はis_null関数と正反対の意味になります。 if($a)としたとき、$aをbooleanにキャストした真偽値として評価されます。 if(empty($a))が正反対の意味になります。 ムービー 発表資料 スライド(PDF) 内容の補足など 実際のコードでは、未定義の変数を扱いたい状況はレアなはずです。一方で、$array[”key”]が未定義かもしれない、というのはよくあることです。プレゼン資