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

 更新时间:2014年08月20日 08:56:17   投稿:junjie  
这篇文章主要介绍了PHP中使用json数据格式定义字面量对象的方法,这是一种变通方法,使用json还可以在类中生成数组哦,需要的朋友可以参考下

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

复制代码 代码如下:

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

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

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

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

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

会报错:
复制代码 代码如下:

[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.jb51.net"  }';
$a = json_decode($a);
print_r($a);

执行结果:
复制代码 代码如下:

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

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

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

执行结果:
复制代码 代码如下:

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

相关文章

  • 如何用Laravel包含你自己的帮助函数

    如何用Laravel包含你自己的帮助函数

    你可能想创建一个在应用的任何地方都可以访问的函数,这个篇文章将带你解决此问题,感兴趣的同学,可以参考下。
    2021-05-05
  • php抓取页面与代码解析 推荐

    php抓取页面与代码解析 推荐

    在做一些天气预报或者RSS订阅的程序时,往往需要抓取非本地文件,一般情况下都是利用php模拟浏览器的访问,通过http请求访问url地址,然后得到html源代码或者xml数据。
    2010-07-07
  • phpmyadmin3 安装配置图解教程

    phpmyadmin3 安装配置图解教程

    基于PHP开发的phpmyadmin也是一个非常好用的Mysql数据库管理程序,在xampp等PHP环境配置安装程序中,phpmyadmin也是一个必备的PHP程序
    2012-03-03
  • PHP源代码数组统计count分析

    PHP源代码数组统计count分析

    偶然在百度知道中看到有个同学问起count及strlen的效率问题,好吧这个问题我当初没理解透彻,认为其不属两个不一样的东西不可比较,后来看了楼主的回复才反应过来,所以自己也去找了下源码查看下。现在总结下查看到的结果并记录之。
    2011-08-08
  • IIS7.X配置PHP运行环境小结

    IIS7.X配置PHP运行环境小结

    很久没有接触过php的东西了,今天有个程序需要一个php的运行环境。由于只需要简单的跑一下程序,因此觉得没有必要弄一个LAMP的环境(如果需要配LAMP环境的话可以参考我写的关于PHP的blog),不如直接用IIS来运行吧。
    2011-06-06
  • PHP垃圾回收机制引用计数器概念分析

    PHP垃圾回收机制引用计数器概念分析

    php变量存在一个叫"zval"的变量容器中,"zval"变量容器包括含变量的类型和值,还包括额外的两个字节信息,分别是“is_ref”表示变量是否属于引用,“refcount”指向这个zval变量容器的变量个数
    2013-06-06
  • 详解thinkphp的Auth类认证

    详解thinkphp的Auth类认证

    Auth类已经在ThinkPHP代码仓库中存在很久了,但是因为一直没有出过它的教程,很少人知道它,它其实比RBAC更方便。本文带着大家来详细了解它。
    2021-05-05
  • php安全之直接用$获取值而不$_GET 字符转义

    php安全之直接用$获取值而不$_GET 字符转义

    php安全之直接用$获取值而不$_GET 字符转义,需要的朋友可以参考下
    2012-06-06
  • Fatal error: ''break'' not in the ''loop'' or ''switch'' context in Function.php

    Fatal error: ''break'' not in the ''loop'' or ''switch'' con

    PHPexcel报出错误Fatal error: 'break' not in the 'loop' or 'switch' context in Function.php on line 463.,需要的朋友可以参考下
    2021-06-06
  • 取得单条网站评论以数组形式进行输出

    取得单条网站评论以数组形式进行输出

    这篇文章主要介绍了取得单条网站评论方法并以数组形式进行输出,需要的朋友可以参考下
    2014-07-07

最新评论