PHP中使用json数据格式定义字面量对象的方法
PHPer都知道PHP是不支持字面量了,至少目前版本都不支持。比如,在JS中可以这样定义object
varo={'name':'qttc','url':'www.nhooo.com'}; alert(o.name);
Python中定义字典,也可以这样定义:
o={'name':'qttc','url':'www.nhooo.com'} printo['name']
但在PHP中这么定义object:
$a={"name":"qttc","url":"www.nhooo.com" };
会报错:
[root@leewww]#phpa.php PHPParseerror: syntaxerror,unexpected'{'in/data0/htdocs/www/a.phponline4
我们可以借用json格式,用引号把包下然后再json_decoude就好。
$a='{"name":"qttc","url":"www.nhooo.com" }'; $a=json_decode($a); print_r($a);
执行结果:
[root@leewww]#phpa.php stdClassObject ( [name]=>qttc [url]=>www.nhooo.com )
由于PHP不支持字面量or匿名函数,所以使用以上定义的方法定义object时不能添加function到object里,还可以这样添加数组元素:
$a='{"name":"qttc","url":"www.nhooo.com","arr":["zhangsan","lisi"]}'; $a=json_decode($a); print_r($a);
执行结果:
[root@leewww]#phpa.php stdClassObject ( [name]=>qttc [url]=>www.nhooo.com [arr]=>Array ( [0]=>zhangsan [1]=>lisi ) )