gpt4 book ai didi

带有 in_array() 和 range() 的 PHP switch() 无法正常工作

转载 作者:行者123 更新时间:2023-12-04 20:16:27 24 4
gpt4 key购买 nike

<分区>

我正在尝试创建一个函数,在给定 0 到 360 度的角度下返回罗盘点,并遇到了这个函数。它有效,除非角度为 0 时......并且我不明白为什么这段代码不起作用:

echo rosaventos(0);
function rosaventos($grau,$slim=true){
switch($grau) {
case in_array($grau, range(0,22,1)):{
$prnt = "N";
break;
}
case in_array($grau, range(23,67,1)):{
$prnt = "NE";
break;
}
case in_array($grau, range(68,112,1)):{
$prnt = "E";
break;
}
case in_array($grau, range(113,157,1)):{
$prnt = "SE";
break;
}
case in_array($grau, range(158,202,1)):{
$prnt = "S";
break;
}
case in_array($grau, range(203,247,1)):{
$prnt = "SO";
break;
}
case in_array($grau, range(248,292,1)):{
$prnt = "O";
break;
}
case in_array($grau, range(293,337,1)):{
$prnt = "NO";
break;
}
case in_array($grau, range(338,360,1)):{
$prnt = "N";
break;
}
default: {
$prnt = "-?-";
}
}
if($slim){
return $prnt;
}else{
return $prnt."-Extended";
}
}

结果是

NE
, but it should be
N
.

Can anybody explain why, and how to fix it?

Thanks

EDIT 1

Established that I made an error in the code, and the conditions should be like:

(...)
swich(true) {
(...)

这是一种低效的做事方式:我发现如果我尝试

echo rosaventos("0");

使用原代码,结果正确

N
?!?!

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