最終更新:2013-06-25 (火) 13:21:12 (3958d)  

Illegal offset type
Top / Illegal offset type

メモ

  • 配列要素の存在しないサブキーを指定すると、文字列アクセスと認識され、サブキーが数値の0に変換されることで、1番目の文字が返されるが、PHP 5.4ではissetが返す値は false に修正され、警告が発せられるようになった。
  • http://blog.sarabande.jp/post/23850080234

PHP 5.4

  • $a が文字列の場合に非数値のオフセット (たとえば $a['foo']) を指定したときの isset() の返り値は false、 そして empty() の返り値は true となりました。 そして同時に E_WARNING が発生します。オフセットに double や bool そして null を指定した場合は E_NOTICE が発生します。数値とみなせる文字列を渡した場合 ($a['2'] など) の挙動はこれまでと変わりません。 '12.3' や '5 foobar' のようなオフセットは非数値とみなされて E_WARNING が発生しますが、過去との互換性のためにそれぞれ 12 および 5 に変換されることに注意しましょう。 次のようなコードの返す値が変わります。 $str='abc';var_dump(isset($str['x'])); // PHP 5.4 以降では false、5.3 以前のバージョンでは true