【MindiaX实例】 PHP 在foreach 中获取JSON 单个数据

之前在开发MindiaX 主题的时候,遇到一个要解析远程JSON 文件的数据的问题。当时困扰我的是整型与数字字符串是否等价的问题。现在过年有时间,就记录回来。

PHP解析JSON 文件

这里的话就直接先讲结果,MindiaX 主题有一个定时自动更换背景的功能,调用的背景图是来自于http://dreamafar.qiniudn.com/destination.json,解析其中的几个名称/值组合成url。实现这部分的函数如下:

// get remote img date from json function mindiax_remote_img() {   $json_api_src ='http://dreamafar.qiniudn.com/destination.json'; $json = file_get_contents($json_api_src); $obj = json_decode($json);   foreach ($obj as $destinations => $value) { foreach ($value as $date) { $curren_id = date("d");//获取当前日期 if($date->id == $curren_id){ $file_pre = $date->alias; $count = $date->photoCount; $file_id = rand(1,$count); $url= 'http://mindiax.qiniudn.com/'.$file_pre.'_'.$file_id.'.jpg'; return $url; break; }     } } }

根据我的设定,图片设置在当天多少号就调用id为多少的图片(你可以看上面的代码),核心判断的地方:

if($date->id == $curren_id){}

当初考虑到 $date->id 输出的是字符串,$curren_id则为整型数据。比如今天为5 号,那么 '5'== 5 返回的是true 吗?原谅我一开头不懂事,理所当然认为不能成立,然后拼命去寻找PHP 中数据类型的转化等方法。后来咨询了一位师兄,给了PHP官方文档页面的说明

在coderunner 里面敲了下确实是如此:

但要是 5 === "5" 则返回 false的结果了,因为两者属于数据类型不同。这个如果学PHP 的话上面这些都是基础问题了吧,原谅我现在才知道。

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏代码世界

Django之ModelForm详解

18040
来自专栏青青天空树

mfc学习之路--如何删除通过控件新增的变量

   刚刚学校mfc的人都会遇到这样一个问题(比如我),在照做书做一个mfc程序,给控件新增变量时变量类型错了,但是变量名对了,然后想要加个正确的时候提示"已经...

11950
来自专栏从零开始学自动化测试

pytest文档14-函数传参和fixture传参数request

为了提高代码的复用性,我们在写用例的时候,会用到函数,然后不同的用例去调用这个函数。 比如登录操作,大部分的用例都会先登录,那就需要把登录单独抽出来写个函数,其...

53420
来自专栏爱撒谎的男孩

struts核心配置文件详解(package)

34460
来自专栏北京马哥教育

Python多进程编程

阅读目录 1. Process 2. Lock 3. Semaphore 4. Event 5. Queue 6. Pipe 7. Pool 序. multi...

48450
来自专栏行者常至

008.多线程-synchronized锁

为了解决线程安全问题, 我们的做法是:不要让多个线程同时对一个全局变量作写的操作。

11920
来自专栏Vamei实验室

Python深入02 上下文管理器

上下文管理器(context manager)是Python2.5开始支持的一种语法,用于规定某个对象的使用范围。一旦进入或者离开该使用范围,会有特殊操作被调用...

21170
来自专栏前端小吉米

async/await 一种非常丝滑的异步语法

21130
来自专栏Python爬虫实战

Python指南:文件处理

哪种文件格式最适合用于存储整个数据集——二进制、文本还是XML?这严重依赖于具体的上下文。

17210
来自专栏小灰灰

报警系统QuickAlarm之报警执行器的设计与实现

根据前面一篇总纲的博文,将整体结构划分为了四大块,本文则主要目标集中在第一块,报警执行器(AlarmExecute)的设计与加载上了 主要的关注点无外乎 定义-...

30750

扫码关注云+社区

领取腾讯云代金券