Yes it does :)

I guess my point was it would be confusing if PHP supported JSON-like
syntax, but json_decode(X) was different from eval(X).  So if PHP isn't
going to use JSON syntax (because it doesn't work for assoc arrays), then I
don't think there is much benefit in using *almost* JSON syntax.

It just seems simpler that:
array(1, 2) equals [1, 2]
array(1 => 2) equals [1 => 2]

-Dan

On Tue, May 31, 2011 at 2:42 PM, Rasmus <ras...@lerdorf.com> wrote:

> On 05/31/2011 02:34 PM, Dan Birken wrote:
> > It is worth noting that point you bring up is one that is present in PHP
> > currently:
> >
> > php > print_r(json_decode(json_encode(array('a' => 'b'))));
> > stdClass Object
> > (
> >     [a] => b
> > )
> >
> > php > print_r(json_decode(json_encode(array('a', 'b'))));
> > Array
> > (
> >     [0] => a
> >     [1] => b
> > )
>
> Sure, but that makes makes perfect sense, does it not? Javascript does
> not have associative arrays. So any non-scalar array has to be mapped to
> a Javascript object in order to be represented. When we bring it back we
> map a Javascript object to a PHP object, however, there is an optional
> argument on json_decode() to change that to an associative array if
> desired.
>
> The point we are making is that this exact inability of the json
> notation to distinguish an associative array from an object makes it a
> problematic choice for a native syntax in PHP.
>
> -Rasmus
>

Reply via email to