PHP中使用json数据格式定义字面量对象的方法

(编辑:jimmy 日期: 2025/6/26 浏览:2)

PHPer都知道PHP是不支持字面量了,至少目前版本都不支持。比如,在JS中可以这样定义object
复制代码 代码如下:
var o = { 'name' : 'qttc' , 'url' : 'www.jb51.net' };
alert(o.name);

Python中定义字典,也可以这样定义:
复制代码 代码如下:
o = { 'name' : 'qttc' , 'url' : 'www.jb51.net' }
print o['name']

但在PHP中这么定义object:
复制代码 代码如下:
$a = { "name" : "qttc", "url" : "www.jb51.net"  };

会报错:
复制代码 代码如下:
[root@lee www]# php a.php
PHP Parse error:  syntax error, unexpected '{' in /data0/htdocs/www/a.php on line 4

我们可以借用json格式,用引号把包下然后再json_decoude就好。
复制代码 代码如下:
$a = '{ "name" : "qttc", "url" : "www.jb51.net"  }';
$a = json_decode($a);
print_r($a);

执行结果:
复制代码 代码如下:
[root@lee www]# php a.php
stdClass Object
(
    [name] => qttc
    [url] => www.jb51.net
)
由于PHP不支持字面量or匿名函数,所以使用以上定义的方法定义object时不能添加function到object里,还可以这样添加数组元素:
复制代码 代码如下:
$a = '{ "name" : "qttc", "url" : "www.jb51.net" , "arr":["zhangsan","lisi"] }';
$a = json_decode($a);
print_r($a);

执行结果:
复制代码 代码如下:
[root@lee www]# php a.php
stdClass Object
(
    [name] => qttc
    [url] => www.jb51.net
    [arr] => Array
        (
            [0] => zhangsan
            [1] => lisi
        )
 
)

一句话新闻

高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。