Hi Rasmus:
> Yes, no change in any of that. In your usage, the case that behaves
> differently in 5.4 was actually a fatal error in 5.3, so chances are
> pretty good you don't have too many of these.
Things only go fatal in 5.3 under some circumstances. Doing isset()
does not:
<?php
function test($var) {
echo PHP_VERSION . ' ' . strtoupper(gettype($var)) . "\n";
echo "one level isset: ";
var_dump(isset($var['blah']));
echo "one level is_array: ";
var_dump(is_array($var['blah']));
echo "two level isset: ";
var_dump(isset($var['blah']['bloo']));
echo "two level is_array: ";
var_dump(is_array($var['blah']['bloo']));
}
test('foo');
?>
5.3.9RC3-dev STRING
one level isset: bool(true)
one level is_array: bool(false)
two level isset: bool(false) << This is not fatal, the next line is.
two level is_array: PHP Fatal error:
Cannot use string offset as an array...
5.4.0RC3-dev STRING
one level isset: bool(true)
one level is_array: bool(false)
two level isset: bool(true) << Was false in 5.3, now is true.
two level is_array: bool(false)
Thanks,
--Dan
--
T H E A N A L Y S I S A N D S O L U T I O N S C O M P A N Y
data intensive web and database programming
http://www.AnalysisAndSolutions.com/
4015 7th Ave #4, Brooklyn NY 11232 v: 718-854-0335 f: 718-854-0409
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php