专栏首页沈唁志PHP中通过json格式定义字面量对象

PHP中通过json格式定义字面量对象

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格式定义字面量对象

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何使用Celery和RabbitMQ设置任务队列

    Celery是一个Python任务队列系统,用于处理跨线程或网络节点的工作任务分配。它使异步任务管理变得容易。您的应用程序只需要将消息推送到像RabbitMQ这...

    沈唁
  • 如何提高GitHub日常使用、下载速度?

    程序猿大多数是离不开GitHub这个巨大的开源宝库的,而更多的时候我们需要使用 git clone 一个项目到本地的时候会发现这个速度是真的无话可说

    沈唁
  • 【学习笔记收藏】LNMP相关安装软件、配置文件位置

    沈唁
  • 学历和能力对程序员那个更重要

    央视新闻曾做过关于高考的调查,结果有七成网友支持高考取消数学,看到新闻后,有一位网友却一针见血地评论道:数学考试存在的意义就是把这七成网友筛选掉。

    无涯WuYa
  • Nginx 反向代理腾讯云 COS 的一个坑

    腾讯云COS的后台服务假设客户端都支持http1.1协议,对http1.0协议没有做很好的兼容,而腾讯云CVM提供的带Nginx的系统镜像里面的Nginx版本又...

    黄希彤
  • Android插件化原理解析——Hook机制之动态代理

    使用代理机制进行API Hook进而达到方法增强是框架的常用手段,比如J2EE框架Spring通过动态代理优雅地实现了AOP编程,极大地提升了Web开发效率;同...

    weishu
  • Silverlight for linux 和 DLR(Dynamic Language Runtime)

    Mono之父Miguel de Icaza 参会微软Mix 07大会。在他的blog有这篇短文: 摘录如下: Dynamic Language Runtime:...

    张善友
  • H5专项测试

    随着Html5的流行,现在很多业务场景使用H5页面来承载,使活动类、运营类的业务功能更便捷在微信、Native端部署,所以H5方面的测试也变得越来越重要。

    用户6367961
  • 性能测试中的常见异常分析(转载整理)

    java.lang.OutOfMemoryError: Java heap space 原因:java堆内存不够或者程序中有死循环; 解决:如果是java堆内...

    飞天小子
  • 【Redis】redis cluster 添加 删除 重分配 节点

    如果主节点有从节点,将从节点转移到其他主节点 如果主节点有slot,去掉分配的slot,然后在删除主节点

    用户5522200

扫码关注云+社区

领取腾讯云代金券