为什么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

回到顶部