PHP中通过json格式定义字面量对象

PHPer都知道PHP是不支持字面量了,至少目前版本都不支持。比如,在JS中可以这样定义object

var o = { 'name' : 'qq52o' , 'url' : 'www.qq52o.me' };
alert(o.name);

Python中定义字典,也可以这样定义:

o = { 'name' : 'qq52o' , 'url' : 'www.qq52o.me' }
print o['name']

但在PHP中这么定义object:

$a = { "name" : "qq52o", "url" : "www.qq52o.me" };

会报错:

[root@qq52o www]# php a.php
PHP Parse error: syntax error, unexpected '{' in /data0/htdocs/www/a.php on line 4

我们可以借用json格式,用引号把包下然后再json_decoude就好。

$a = '{ "name" : "qq52o", "url" : "www.qq52o.me" }';
$a = json_decode($a);
print_r($a);

执行结果:

[root@qq52o www]# php a.php
stdClass Object
(
[name] => qq52o
[url] => www.qq52o.me
)

由于PHP不支持字面量or匿名函数,所以使用以上定义的方法定义object时不能添加function到object里,还可以这样添加数组元素:

$a = '{ "name" : "qq52o", "url" : "www.qq52o.me" , "arr":["zhangsan","lisi"] }';
$a = json_decode($a);
print_r($a);

执行结果:

[root@qq52o www]# php a.php
stdClass Object
(
[name] => qq52o
[url] => www.qq52o.me
[arr] => Array
   (
[0] => zhangsan
[1] => lisi
   )
)

发表评论

发表评论

*

沙发空缺中,还不快抢~