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;}