From:             christian at jul dot net
Operating system: Debian Linux (sid)
PHP version:      5.0.0RC1
PHP Bug Type:     Arrays related
Bug description:  Weird string offset E_WARNING behaviour

Description:
------------
The fact that PHP5 issues an E_WARNING on illegal string offset use, gives
a problem on checking values with isset and is_array. Furthermore it does
not behave consistent.

Might not be a real bug, since it is the 'Backward Incompatible Changes'
list, still the behavior seems to buggy to me.

Reproduce code:
---------------
test.php:
<?php
$a = 'this is not an array';

if(isset($a['foo']))
     print '1';
if(isset($a['foo']['bar']))
     print '2';
if(isset($a['foo']['bar']['doo']))
     print '3';

?>

test2.php
<?php
$a = 'this is not an array';

if(is_array($a['foo']))
     print '1';
if(is_array($a['foo']['bar']))
     print '2';
if(is_array($a['foo']['bar']['doo']))
     print '3';

?>


Expected result:
----------------
Nothing!

Maybe fatal error at line 4 in both scripts, would be ok, but not very
niced designed, and doesn't fit well into the type loose scheme of PHP.
IMHO.

Actual result:
--------------
Fatal error: Cannot use string offset as an array in
/var/www/sites/test.php on line 8


Fatal error: Cannot use string offset as an array in
/var/www/sites/test2.php on line 6



-- 
Edit bug report at http://bugs.php.net/?id=28107&edit=1
-- 
Try a CVS snapshot (php4):  http://bugs.php.net/fix.php?id=28107&r=trysnapshot4
Try a CVS snapshot (php5):  http://bugs.php.net/fix.php?id=28107&r=trysnapshot5
Fixed in CVS:               http://bugs.php.net/fix.php?id=28107&r=fixedcvs
Fixed in release:           http://bugs.php.net/fix.php?id=28107&r=alreadyfixed
Need backtrace:             http://bugs.php.net/fix.php?id=28107&r=needtrace
Need Reproduce Script:      http://bugs.php.net/fix.php?id=28107&r=needscript
Try newer version:          http://bugs.php.net/fix.php?id=28107&r=oldversion
Not developer issue:        http://bugs.php.net/fix.php?id=28107&r=support
Expected behavior:          http://bugs.php.net/fix.php?id=28107&r=notwrong
Not enough info:            http://bugs.php.net/fix.php?id=28107&r=notenoughinfo
Submitted twice:            http://bugs.php.net/fix.php?id=28107&r=submittedtwice
register_globals:           http://bugs.php.net/fix.php?id=28107&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=28107&r=php3
Daylight Savings:           http://bugs.php.net/fix.php?id=28107&r=dst
IIS Stability:              http://bugs.php.net/fix.php?id=28107&r=isapi
Install GNU Sed:            http://bugs.php.net/fix.php?id=28107&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=28107&r=float

Reply via email to