猿问

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

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


慕桂英546537
浏览 1495回答 3
3回答

梦里花落0921

你在做==为你分类类型。0是int,所以在本例中它将转换为'e'到一个整数。它不能像一个人那样被解析,而且会变成0..一根绳子'0e'会变成0会匹配的!使用===
随时随地看视频慕课网APP
我要回答