gpt4 book ai didi

php - 请解释为什么 PHP switch case 总是在这段代码中执行 case 0

转载 作者:可可西里 更新时间:2023-11-01 13:46:47 25 4
gpt4 key购买 nike

谁能解释一下为什么下面的代码中永远不会出现“a”情况,以及为什么它总是执行情况 0

switch ("a") {
case 0:
echo "0";
break;
case "a": // never reached because "a" is already matched with 0
echo "a";
break;
}

最佳答案

PHP 与 JavaScript 或 Perl 一样,是一种松散类型的语言,会尝试猜测您想要做什么。在这种情况下,它将您的字符串更改为它能找到的最接近的整数,即零。换句话说,"a"== 0 是 PHP 中的真语句。

有关此主题的更多信息,请参阅 PHP documentation .我建议您在 switch 语句中对值进行类型转换,或将其替换为 if/elseif/else 结构.


从 PHP 8.0 开始,this behaviour has changed现在,在两种类型之间进行比较之前,整数值将始终更改为字符串。但是,严格输入和比较变量仍然是推荐的做法。

关于php - 请解释为什么 PHP switch case 总是在这段代码中执行 case 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41604692/

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