目前,在PHP中是不支持字面量命名法。
前端的小伙伴都知道,在JS中用字面量定义一个对象的方法可以如下:
var o = { 'name' : 'Tom' , 'url' : 'www.baidu.com' };alert(o.name);
但在PHP中这么定义对象:
$o = { "name" : "Tom", "url" : "www.baidu.com" };
则会报错
Parse error: syntax error, unexpected '{ ' in D:\server\htdocs\xm\data\04_product_select.php on line 9
所以在需要用到JSON时,可以用尽量尝试PHP的数组的形式,而少使用对象的形式,可以更简单且直观(目前本人的观点,或许不够客观,望斧正)。再用json_enconde($arr),进行JSON格式编码,方法如下
$arr = [ 'name' => 'Tom', 'age' => 20 ];$json = json_encode($arr);
当需要定义多对象数组的时候可以写成如下方式:
$stuArray[] = ['name'=>'Lucy','age'=>30];$stuArray[] = ['name'=>'Mary','age'=>20];$stuArray[] = ['name'=>'Lily','age'=>32];
本人在查阅阮一峰老师的博客文章《在PHP语言中使用JSON》时,看到阮老师所说的“javascript不支持关联数组”(详见下图),自己不是很认同,但未找到资料反驳他,或反驳自己,所以在此贴出截图,希望日后能自己解决,也希望各位能指点一二,不胜感激!
不过最后说的:json_enconde()只将索引数组(indexed array)转换为数组格式,而将关联数组(associative array)转为对象格式。还是应该牢记此特性!