【问题标题】:String is being shown as equal to a number字符串显示为等于数字
【发布时间】:2012-09-12 03:03:28
【问题描述】:

我的一些 php.ini 文件中有一个奇怪的问题。似乎正在发生的事情是 0 被显示为等于字符串“done”。以下是正在发生的事情:

if(!isset($pointer)){
    $pointer = 0;   
}
error_log($pointer); //in this instance, I haven't set a pointer, returns 0
if($pointer == "done"){
    die();
}

由于某种原因,第二个 if 语句触发并终止了脚本。我不明白为什么,当 $pointer 等于 0 时,它显然也等于“完成”。这是我忽略的超级简单的事情吗?

我已经解决了这种情况,在第二个 if 语句上使用 === 给了我想要的结果,我只是想了解为什么它一开始就不起作用。感谢您的宝贵时间。

【问题讨论】:

标签: php string equals


【解决方案1】:

这是一个类型比较问题;正如你所说,使用:

if($pointer === "done"){

强制检查值和类型。

正在发生的事情是“完成”被转换为一个数字进行比较。由于那里没有数字,因此它显示为空。在您的比较中,null 的计算结果为 0。

【讨论】:

    猜你喜欢
    • 2013-10-09
    • 2018-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    相关资源
    最近更新 更多