タイトルは「いとしさとせつなさと…」みたいな感じで読んでください。 マジックメソッド、ArrayAccessインタフェース、Traversableインタフェースを実装した配列風のクラスを作成する際に引っかかりがちな(?)、__isset() と offsetExists() の仕様上の罠についてメモです。 内容的には ArrayAccess + マジックメソッドで公開する値と内部の値を変換するクラスにTraversableを実装する際の注意点 のほぼ続編になります。 罠というか言語仕様の不備と言ってもいいんじゃないかと考えてるのですが、PHPマニュアルの記述とともに isset(), empty(), offsetExists() それぞれについて見てみます。 isset() 個人的にはコード内で一番使用頻度が高いんじゃないかという言語構造で、PHPを使う上で最初に把握しておいて欲しいとこ