PHP 源码 — implode 函数源码分析

PHP 中的 intval# intval 函数的签名从官方文档可见: ``` intval ( mixed $var [, int $base = 10 ] ) : int ``` 它的作用是将变量转换为整数值。其第二个参数 $base 用的不是很多。它代表转化所使用的进制。默认是 10 进制 可以通过如下简单示例,了解如何使用它: ``` $var1 = '123'; $var2 = '-123'; $var3 = [1, 2, ]; $var4 = [-1, 2, ]; var_dump( intval($var1), intval($var2), intval($var3), intval($var4) ); // ......

微信支付V3 JSAPI 调用微信失败记录

今天运营小伙伴反馈说当商品金额设置为1.16时,调起微信失败。 我们的接口使用的是Thinkphp 5.3 + Mysql 5.6进行的开发 数据库中商品的的价格字段是 `price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '付费金额', 因为微信支付的金额单位是分,所以需要将元转成分及1.16 * 100; 原本以为这样就可以了,结果微信报错,提示数据为 1.15999999... 刚开始没有反应过来,以为是微信数据转换的问题,后来才反应过来 decimal 的数据类型其实就是float 型 而float是浮点型,用来表示实数,其值是近似值。 所以使用intval(1.16 * 100) ......