PHPer都知道PHP是不支持字面量了,至少目前版本都不支持。比如,在JS中可以這樣定義object
復制代碼代碼如下:
var o = { 'name' : 'qttc' , 'url' : 'www.49028c.com' };
alert(o.name);
Python中定義字典,也可以這樣定義:
復制代碼代碼如下:
o = { 'name' : 'qttc' , 'url' : 'www.49028c.com' }
print o['name']
但在PHP中這么定義object:
復制代碼代碼如下:
$a = { "name" : "qttc", "url" : "www.49028c.com" };
會報錯:
復制代碼代碼如下:
[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.49028c.com" }';
$a = json_decode($a);
print_r($a);
執行結果:
復制代碼代碼如下:
[root@lee www]# php a.php
stdClass Object
(
[name] => qttc
[url] => www.49028c.com
)
由于PHP不支持字面量or匿名函數,所以使用以上定義的方法定義object時不能添加function到object里,還可以這樣添加數組元素:
復制代碼代碼如下:
$a = '{ "name" : "qttc", "url" : "www.49028c.com" , "arr":["zhangsan","lisi"] }';
$a = json_decode($a);
print_r($a);
執行結果:
復制代碼代碼如下:
[root@lee www]# php a.php
stdClass Object
(
[name] => qttc
[url] => www.49028c.com
[arr] => Array
(
[0] => zhangsan
[1] => lisi
)
)