PHP:If/elseif/else语句不正确更好的方法?
如何使此if语句适用于0、1和2猫 当$cats=0或1时,它会回显“很好,您只有2只猫” 有代码建议吗PHP:If/elseif/else语句不正确更好的方法?,php,Php,如何使此if语句适用于0、1和2猫 当$cats=0或1时,它会回显“很好,您只有2只猫” 有代码建议吗 <?php //If you have more then 2 cats it is illegal //if you have 20 or more cats "you are a freak!" //If you have 2 cats "It is fine you only have 2 cats". //If
<?php
//If you have more then 2 cats it is illegal
//if you have 20 or more cats "you are a freak!"
//If you have 2 cats "It is fine you only have 2 cats".
//If you have 1 cats "It is fine you only have 1 cat".
//If you have 0 cats "You don't have any cats no problem".
$cats = 25;
if ($cats > 2 && $cats < 20){
echo "You have too many cats, it is illegal!";
} elseif ($cats >= 20) {
echo "you are a freak!";
} elseif ($cats = 2) {
echo "It is fine you only have 2 cats";
} elseif ($cats = 1) {
echo "It is fine you only have 1 cat";
} elseif ($cats = 0){
echo "You don't have any cats no problem";
}
?>
应该是=
(用于比较)而不是=
(用于分配)
您使用了错误的比较运算符语法
<?php
//If you have more then 2 cats it is illegal
//if you have 20 or more cats "you are a freak!"
//If you have 2 cats "It is fine you only have 2 cats".
//If you have 1 cats "It is fine you only have 1 cat".
//If you have 0 cats "You don't have any cats no problem".
$cats = 25;
if ($cats > 2 && $cats < 20){
echo "You have too many cats, it is illegal!";
} elseif ($cats >= 20) {
echo "you are a freak!";
} elseif ($cats == 2) {
echo "It is fine you only have 2 cats";
} elseif ($cats == 1) {
echo "It is fine you only have 1 cat";
} elseif ($cats == 0){
echo "You don't have any cats no problem";
}
在=
和=
之间甚至==
检查逻辑比较图表-
如果PHP中的语句要求==不=工作。使用==
进行比较,=
用于赋值
另外,考虑将代码重新排列为:
switch($cats) {
case 0:
echo "You don't have any cats";
break;
case 1:
echo "You have 1 cat";
break;
case 2:
echo "You have 2 cats";
break;
default:
if( $cats < 20) echo "You have too many cats";
else echo "You are a freak!";
}
开关($cats){
案例0:
echo“你没有猫”;
打破
案例1:
回声“你有一只猫”;
打破
案例2:
回声“你有两只猫”;
打破
违约:
如果($cats<20)回应“你有太多的猫”;
否则我会回应“你是个怪胎!”;
}
尝试使用=
而不是=
else if($cats==2){}
比较运算符出错。只需使用它(我以您当前的方式编码,并进行了一些更正):
如果在if
语句中用=(赋值)操作符替换=(比较)操作符,代码可能会工作!但是,在这种情况下,我会使用一个语句,在向下滚动代码时,它的可读性和可理解性要高得多;)
开关($cats){
案例0:呼应“你没有猫”;休息;
案例1:回显“你有一只猫”;中断;
案例2:呼应“你有两只猫”;休息;
默认值:echo($cats<20?):“你的猫太多了”:“你是个怪胎!”;
}
在类似这样的情况下,这种方法也非常方便 啊。这在PHP中也会让你头疼,是吗?是的,我正在浏览CodeCademy这是显而易见的答案。你必须使用==而不是=。使代码易于理解(将您的条件按顺序排列),除非您正在分配和测试一个真实值(例如:everywhile($row=mysql\u fetch\u assoc($result))
您曾经编写过的循环,它可以很容易地成为一个if
测试一行)
switch($cats) {
case 0:
echo "You don't have any cats";
break;
case 1:
echo "You have 1 cat";
break;
case 2:
echo "You have 2 cats";
break;
default:
if( $cats < 20) echo "You have too many cats";
else echo "You are a freak!";
}
<?php
//If you have more then 2 cats it is illegal
//if you have 20 or more cats "you are a freak!"
//If you have 2 cats "It is fine you only have 2 cats".
//If you have 1 cats "It is fine you only have 1 cat".
//If you have 0 cats "You don't have any cats no problem".
$cats = 25;
if ($cats == 0){
echo "You don't have any cats no problem";
}else if ($cats == 1) {
echo "It is fine you only have 1 cat";
} else if ($cats == 2) {
echo "It is fine you only have 2 cats";
} else if ($cats > 2 && $cats < 20){
echo "You have too many cats, it is illegal!";
} else {
echo "you are a freak!";
}
?>
switch($cats) {
case 0: echo "You don't have any cats"; break;
case 1: echo "You have 1 cat"; break;
case 2: echo "You have 2 cats"; break;
default: echo ($cats < 20 ? "You have too many cats" : "You are a freak!");
}