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

网络编程 2021-07-05 09:50www.168986.cn编程入门
这篇文章主要介绍了PHP中使用json数据格式定义字面量对象的方法,这是一种变通方法,使用json还可以在类中生成数组哦,需要的朋友可以参考下

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

代码如下:

var o = { 'name' : 'qttc' , 'url' : '.jb51.' };
alert(o.name);

Python中定义字典,也可以这样定义
代码如下:

o = { 'name' : 'qttc' , 'url' : '.jb51.' }
print o['name']

但在PHP中这么定义object
代码如下:

$a = { "name" : "qttc", "url" : ".jb51."  };

会报错
代码如下:

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

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

$a = '{ "name" : "qttc", "url" : ".jb51."  }';
$a = json_decode($a);
print_r($a);

执行结果
代码如下:

[root@lee ]# php a.php
stdClass Object
(
    [name] => qttc
    [url] => .jb51.
)

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

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

执行结果
代码如下:

[root@lee ]# php a.php
stdClass Object
(
    [name] => qttc
    [url] => .jb51.
    [arr] => Array
        (
            [0] => zhangsan
            [1] => lisi
        )
 
)

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by