If a read_dimension handler returns a NULL zval and throws an exception,
the engine will emit an error "Objects used as arrays in post/pre
increment/decrement must return values by reference".
$foo['bar'] = 42;
I know this is because the value is going to be written into, but
IMO it's better to fire the exception at this point, since the engine
error message hides the useful message from the exception (and is
a little misleading in any case).