为什么php的字符串,为什么PHP认为0等于字符串?

b90ad716a27befb55d7db9bd83637897.png

30秒到达战场

"ABC" == 0评价true因为第一 "ABC"被转换为整数,并变为0 然后它被比作0.这是一个奇数PHP语言的行为:通常人们会期望0被提升为字符串"0"然后和"ABC"结果false..也许这就是在其他语言中发生的事情,比如JavaScript,在这些语言中,弱的比较"ABC" == 0评价false.严格的比较解决了这个问题:"ABC" === 0评价false.但如果我确实需要将数字作为字符串与数字进行比较呢?"123" === 123评价false因为左右项的类型不同。实际上所需要的是一个弱的比较,而不需要PHP类型杂耍的缺陷。解决方案是显式地将术语提升为字符串,然后进行比较(严格或弱不再重要)。(string)"123" === (string)123是true当(string)"123" === (string)0是false适用于原始代码:$item['price'] = 0;/*code to get item information goes in here*/if((string)$item['price'] == 'e') {

    $item['price'] = -1;}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值