gpt4 book ai didi

php - 是 php switch 语句错误吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:56:02 24 4
gpt4 key购买 nike

我有问题想知道答案,为什么下面的代码会打印出A not default?

$i = 0;
switch ($i) {
case 'A':
echo "i equals A"; //will printed it
break;
case 'B':
echo "i equals B";
break;
case 'C':
echo "i equals C";
break;
default:
echo "i equals other";
}

谁能告诉我为什么?我真的不明白。我的 PHP 版本是 5.2.17泰克斯。

最佳答案

这种比较正在发生:

0 == 'A'

发生的事情是 PHP 将字符串转换为整数。这导致字母 A 变为零,因为它不代表数字。

因此:

0 == 0

那个案例符合开关,因此被执行。非常违反直觉,但这是 PHP 类型系统的工作方式,不幸的是从技术上讲这不是错误。

你可以通过将 $i 变成这样的字符串来解决这个问题:

switch ((string) $i) {

或者如果可以的话,将其初始化为字符串:

$i = '0';

关于php - 是 php switch 语句错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8146433/

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