Exactly my point. Why try to fudge json into php, instead of just improving php?
On May 31, 2011, at 5:02 PM, Dan Birken wrote: > 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 >> -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php