忍び歩く男 - SLYWALKER

大阪のこっそりPHPer

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になってることもあるので、何かしら気をつけとかないとなぁ。