Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:If/elseif/else语句不正确更好的方法?_Php - Fatal编程技术网

PHP:If/elseif/else语句不正确更好的方法?

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

如何使此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 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这是显而易见的答案。你必须使用==而不是=。使代码易于理解(将您的条件按顺序排列),除非您正在分配和测试一个真实值(例如:every
while($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!");
}