如何在不使用if或case的情况下检查PHP中的多个比较?

时间:2017-02-28 22:05:27

标签: php

所以我知道如果条件为真,你可以做一些像这样简单的事情来设置一个等于一件的变量,如果是假的话就设置一件事。

$height > 70 ? $output = "Taller than 6 foot" : $output = "Shorter than 6 foot";

但是我怎样才能检查多个不使用if语句的内容?例如,如果我想检查高度是否介于5和6之间,介于4和5之间,介于3和4之间还是更高,然后根据$ height落入的类别只回显一个$ result,我该怎么做?我可以在以下之后添加一些无用的东西:例如我永远不会使用的变量吗?

2 个答案:

答案 0 :(得分:1)

参数化这个的唯一方法是使用switch,它与使用ifs大致相同,但具有多个验证。可悲的是,没有更短的方式来写这个。 (可能有,但写入/读取可能很麻烦,这并不总是有利的!)。

这是一个使用多个条件的switch / case语句。通常,您将变量传递给switch语句,并将case语句与变量或可能的值一起使用,但由于可能的值是条件,因此您需要将true作为参数传递因为这是预期的价值。如果需要,您可以通过传递false来解决此问题。

switch(true){
    case ($my_number > 3):
        echo "Greater than 3";
    break;

    case ($my_number <= 3):
        echo "Smaller or equal to 3";
    break;
}

答案 1 :(得分:0)

你可以制作嵌套条件:

127.0.0.1       localhost MYMACSNAME

但这不是真的可读,我会避免这种情况,使用if / switch

时,多条件的语法会更好