PHPs开关中的量程
我的老师给了我这个任务 生成一个int变量,表示一周中的哪一天(1-7)。在下列情况下做一个switch语句:PHPs开关中的量程,php,switch-statement,range,Php,Switch Statement,Range,我的老师给了我这个任务 生成一个int变量,表示一周中的哪一天(1-7)。在下列情况下做一个switch语句: 1-5echo“工作日” 6-7echo“周末” 其他值回显“未知日期” 我的问题是零 起初我写了这段代码 $day = 7; switch ($day) { case $day >= 1 && $day <= 5: echo "Weekday"; break; case $day >= 6 &a
- 1-5
echo“工作日”代码>
- 6-7
echo“周末”代码>
- 其他值
回显“未知日期”代码>
$day = 7;
switch ($day) {
case $day >= 1 && $day <= 5:
echo "Weekday";
break;
case $day >= 6 && $day <= 7:
echo "Weekend";
break;
default:
echo "Unknown day";
break;
}
但情况更糟。我总是得到default
选项
我知道有更好的方法可以做到这一点,但我只需要使用switch语句就可以了。您可以将case语句中的值堆叠在一起。以下是一个片段:
case 6:
case 7:
echo "Weekend";
break;
您可以堆叠具有属于一起的值的case语句。以下是一个片段:
case 6:
case 7:
echo "Weekend";
break;
了解您的switch语句正在将switch值与每个case语句中的表达式进行比较:
如果
$day=0
和案例$day>=1&&&$day=1&&$day了解您的switch语句正在将switch值与每个案例语句中的表达式进行比较:
如果$day=0
和案例$day>=1&&&$day=1&&$day尽管对于这一点,我会使用switch-false-nulll中哪一个更好将等于0,但也很难与1进行比较,因为它不严格,它被调用
带开关的代码:
<?php
$day = 0;
switch ($day) {
case 1: // if you put as day anything but 0, false, null it will go to true
case 2:
case 3:
case 4:
case 5:
echo 'weekday';
break;
case 6:
case 7:
echo 'weekend';
break;
default:
echo 'unknown';
}
如果您切换(true)
,它可能会工作,但没有多大意义,代码如下:
<?php
$day = 7;
switch (true) {
case $day > 0 && $day < 6:
echo 'weekday';
break;
case $day === 6 || $day === 7 :
echo 'weekend';
break;
default:
echo 'unknown';
}
尽管对于这个问题,我会使用,如果在开关中哪个更好,false nulll将等于0,也很难与1进行比较,因为它不是严格的,它被调用
带开关的代码:
<?php
$day = 0;
switch ($day) {
case 1: // if you put as day anything but 0, false, null it will go to true
case 2:
case 3:
case 4:
case 5:
echo 'weekday';
break;
case 6:
case 7:
echo 'weekend';
break;
default:
echo 'unknown';
}
如果您切换(true)
,它可能会工作,但没有多大意义,代码如下:
<?php
$day = 7;
switch (true) {
case $day > 0 && $day < 6:
echo 'weekday';
break;
case $day === 6 || $day === 7 :
echo 'weekend';
break;
default:
echo 'unknown';
}
检查此项,但我认为您可以在执行$day>=的第一个代码中添加,就在默认值之前:
只添加案例0
而不添加破绽查看此答案:检查此项,但我认为您可以在执行$day>=的第一个代码中添加,就在默认值之前:
只添加case 0
而不添加break请参见以下答案: