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

Reply via email to