我的一些PHP中有一个奇怪的问题.似乎正在发生的是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();
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,第二个if语句触发并终止脚本.我无法弄清楚为什么,当$ pointer等于0时,它显然也等于"done".这是一件非常容易的东西吗?
我已经解决了这个问题,在第二个if语句中使用===给了我想要的结果,我只想理解它为什么不能在第一时间工作.感谢您的时间.
这是一个类型比较问题; 如你所说,使用:
if($pointer === "done"){
Run Code Online (Sandbox Code Playgroud)
强制检查值和类型.
发生的事情是'done'被转换成一个数字用于比较.因为那里没有数字,所以它是空的.并且null在您的比较中评估为0.
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |