php和false那些事

下面等式哪些是成立的?

0==false
0.0==false
'' == false
[] == false
'0' == false
null==false

'0.0'==false
'0.0000' == false

答案揭晓。前6个都是对的。总结来讲就是 数字0 ,浮点0.0 ,空串,字符串0 和null 都是false的,其他的不管是谁都是true;
文档是这么说的
在这里插入图片描述

其实其中最麻烦的就是:
字符串'0'=false,但是,'0.0'=true
一直理解的这不就是面试题吗,真正在开发过程中能遇见这个也蛮少的,最近突然踩坑了~
真实的case是这样的,我们开发的一个功能是要用若干组数据去不断的merge,就是按照时间顺序,越新的数据排在后面,不断的merge前面的数据,最后得到一组数据;
比较真实的场景是:有一个善变的杂货店老板娘,一件商品原价4元;
第一天标价6元,第二天没标价,第三天标价5元
那么第一天标价是6,第二天应该是6,第三天是5;
数据允许为空的时候就要先应用array_fliter过滤掉空的数据,然后用后面的不断进行array_merge(旧数据,新数据)即可完成。

在这里插入图片描述
红框的部分也就是说,必须是false类型的就过滤了,千算万算,我们有一个税率tax_rate:“0.0000”

完美的踩进这个坑~
z这基本上是我遇到的最贴合这个知识点的例子了,分享给大家。反正从此以后我是不会再忘记了!!!!
至于解决办法吧。就是判断tax_rate== '0.0000’的时候unset掉它,其他的所有继续array_filter即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值