时间:2021-07-01 10:21:17 帮助过:9人阅读
接口返回数据一般把整形与浮点型当成字符串输出出来了,你们有对这个类型进行处理吗?
该怎么处理,目前在用Laravel框架。
我的思路是在每个Model那边定义下数据类型,然后在Model输出的时候统一处理,有什么好的方法吗。
接口返回数据一般把整形与浮点型当成字符串输出出来了,你们有对这个类型进行处理吗?
该怎么处理,目前在用Laravel框架。
我的思路是在每个Model那边定义下数据类型,然后在Model输出的时候统一处理,有什么好的方法吗。
PHP 是弱类型语言,所以出现这种情况比较常见。
一般如果跟 js 交互,或者其他弱类型语言交互,都不会有什么问题。
如果跟 Ios、Android 等强类型的语言就会出现一些问题
1、写个 api 统一处理函数,在输出前统一处理一下,是 int 就用intval 转一下,是 null 的就是 null,是空字符串,就是 "" ,这在强类型中需要注意的。
2、交互一方,Ios、Android 等,最好也做类型验证,可以做类型转化,做容错,不要接口返回的类型不对,程序就崩了。
两方面都最好处理。
这个跟框架无关,PHP是弱类型的,所以返回JSON的时候数据格式很不规范,我目前返回JSON数据的接口都是在最外面手动格式化一下
strval(xxx) //格式化为字符串
intval(xxx) //格式化为整形数字
floatval(xxx) //格式化为浮点型数字
boolval(xxx) //格式化为浮点型
谢谢邀请,楼上说的很清晰了,php弱类型,你可以根据你要接受的数据,或者返回给你客户端的数据单独用程序做下处理,保证数据的完整性准确性。你可以定一个类或者方法处理你说的浮点,整型等数据,总之保证接口安全性数据正确性就好了
首先说我的结果。
不会转换成字符串。
是不是你数据原本就是字符串。
我的php版本: 5.5.34
Laravel Framework version: 5.2.22
顺便一提,我认为处理的时候应该是在controller返回的时候去统一处理。