is "a" defined and an array?
The set method is not always called,.. i.e. with referencial usage, php updates the underlaying value "magically" without the setter.
could probably happen for
$myArray[] = 1;
$myArray[1]++;
$myArray[1]+=2;
$ref = &$myArray[1];
$ref = 2;
in the F3 mappers, which utilize that Magic class, these values get checked for changes upon update or insert.
The Magic class does it job well,.. when you fetch $myArray["a"]["b"], Magic just gives you 'a', which is already a nested array.