gpt4 book ai didi

PHP - 使用 ==(相等)和 ===(相同)的意外行为

转载 作者:行者123 更新时间:2023-12-02 07:38:50 24 4
gpt4 key购买 nike

我的代码中有以下内容:

$mixed = array();
$mixed[0] = "It's a zero!";
$mixed['word'] = "It's a word!";

foreach ($mixed as $key => $value) {
if ($key == 'word') {
echo $value.'<br />';
}
}

由于某种原因,上面的代码会同时打印“It's a zero!”和“这是一个词!”。我期待它只打印“这是一个词!”。这是为什么??我觉得我错过了一些重要的东西。当我在 if 语句中使用 === 时,它按预期工作,换句话说,它只打印“It's a word!”。我知道相等运算符和相同运算符之间存在差异,但第一个示例不相等,是吗?

最佳答案

==在比较之前为您进行类型转换。

当你做了 ==用一个整数 0 , 它转换了 'word'转化为适当的整数值

intval() 在提供纯字符串时返回 0,因此 0 匹配。另一个在字符串上下文中匹配,那个也匹配。


=== 没有这样的隐式转换,因此它仅在一种情况下返回 true,即字符串实际上相同。

关于PHP - 使用 ==(相等)和 ===(相同)的意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13365878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com