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@lee www]# php a.php
stdClass Object
(
[name] => qq52o
[url] => www.qq52o.me
[arr] => Array
(
[0] => zhangsan
[1] => lisi
)
)
沈唁志|一个PHPer的成长之路!
原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:转载自:PHP中通过json格式定义字面量对象
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有