isset()の挙動がPHP5.2.10から変わった
<?php $a = ''; var_dump(isset($a['b']['c'])); ?>
このコードでNotice Errorが出るようになってた。
以下のようなものではエラーはでなかった。
<?php $a = ''; var_dump(isset($a['b'])); $a = null; var_dump(isset($a['b']['c'])); $a = 0; var_dump(isset($a['b']['c'])); $a = array(); var_dump(isset($a['b']['c'])); $a = '0'; var_dump(isset($a['b']['c'])); ?>
このせいで、CakePHPでもNotice Errorがでてしまう。
一応チケットは投げた。
#6506 (Notice error when no choice HABTM save) - CakePHP : The Rapid Development Framework for PHP - Trac
2009-07-24追記
以下のChangesetで解決しました
Changeset 8251 - CakePHP : The Rapid Development Framework for PHP - Trac
レンタルサーバなどでは知らないうちに5.2.10になってることもあるので、何かしら気をつけとかないとなぁ。