Edit report at http://bugs.php.net/bug.php?id=52194&edit=1

 ID:               52194
 Updated by:       [email protected]
 Reported by:      bubi1 at mailinator dot com
 Summary:          incorrect behaviour when printing non existend array
                   index
 Status:           Bogus
 Type:             Bug
 Package:          *General Issues
 Operating System: all
 PHP Version:      5.3.2

 New Comment:

Because non-integer keys are converted to integers. Everything is
explained here: 

http://www.php.net/manual/en/language.types.string.php


Previous Comments:
------------------------------------------------------------------------
[2010-06-26 19:44:45] bubi1 at mailinator dot com

Yes, i know that a string is an array of chars. Maybe i'm wrong,but i
remember once only the syntax $string{0} was working, non $string[0]
also.



Anyway, why this works?

php -r '$arr = 'test';var_dump($arr['rasmus']);'

still prints "t".



There is no key called "rasmus" in the $arr string...

------------------------------------------------------------------------
[2010-06-26 19:12:01] [email protected]

A string is an array of characters.  You have:



$arr[0] = "test";



Therefore array index 0 on that string is:



$arr[0][0] which very logically is "t"

------------------------------------------------------------------------
[2010-06-26 18:29:04] bubi1 at mailinator dot com

Description:
------------
The code below is self explaining.

Test script:
---------------
php -r '$arr =
array('test');var_dump($arr[0][0]);var_dump(isset($arr[0][0]));'

Expected result:
----------------
NULL

bool(false)

Actual result:
--------------
string(1) "t"

bool(true)


------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=52194&edit=1

Reply via email to