为什么PHP认为0等于字符串?
我有以下代码:
$item['price'] = 0;/* Code to get item information goes in here */
if($item['price'] == 'e') {
$item['price'] = -1;
}
旨在将物料价格初始化为0,然后获取有关其的信息。如果价格被告知为“ e”,则表示交换而不是卖出,其作为负数存储在数据库中。
也有可能将价格保留为0,这是因为该项目是奖励商品,或者是因为价格将在以后设置。
但是,每当未设置价格时,其初始值将为0,则上述if
循环将评估为true,并将价格设置为-1。也就是说,它认为0等于“ e”。
如何解释呢?
当价格提供为0(初始化后)时,该行为是不稳定的:有时if评估为true,有时评估为false。*
回答:
您正在做的工作==
将为您整理类型。
0
是一个int,因此在这种情况下它将转换'e'
为一个int。这是不可解析的,并将成为0
。一个字符串'0e'
将成为0
并将匹配!
采用 ===
以上是 为什么PHP认为0等于字符串? 的全部内容, 来源链接: utcz.com/qa/418002.html