写在前
我们知道WEB模式是“请求-响应”模式
客户端(浏览器等)请求数据或页面 -- 服务端接收请求并处理数据(数据库操作或响应缓存) -- 返回数据给客户端,客户端解析数据并展示给用户
这里涉及到常用的MVC设计模式
models( M ) ------ 数据持久层 ------ 负责与数据库打交道。
views( V ) ------ 展示层 ------ 用户看到的界面
controlllers( C ) ------ 控制层 ------ 也称业务逻辑层,负责用户交互和数据库之间的桥接
写view层数据接口的时候,有两种常用的方法。
第一种是通过form表单提交数据到后台,这里不讨论。
第二种是ajax,在处理一些异步交互的时候使用最为频繁。
我们常常使用ajax来绑定数据和url提交到后台(controllers),控制层获取到前台传送过来的数据,传递到model层对数据库进行操作或直接读取缓存,处理完毕的数据通常编码为json格式并返回给前台,前台解析json并动态更新到用户界面上,这里称为一个异步交互。
正文
这里我们着重探讨一下PHP处理json的json_encode和json_decode函数。
json_encode
先上代码
再看看输出的结果
大家可以发现一个很奇怪的问题发生了,当键值为0的时候按数组处理,其他键值则作为对象处理。那么如果还是想按对象编码该怎么做呢?
使用json_encode的第二个可选参数JSON_FORCE_OBJECT强转成对象
json_decode
一般我们习惯操作数组,那么可以使用json_decode第二个可选参数true,将返回array而不是object
如果一定要操作object也可以,不过语法有点奇怪,并不像操作数组那么方便,看代码
好了,这些都是在使用过程遭遇到的一些问题,希望能够帮到与我一样遇到这些问题的童鞋,不对之处希望大力指正~