PHP:范围开关的问题



我想使用 switch 语句在 PHP 中区分以下情况。这里有人可以帮忙告诉我如何更改它才能让它使用数字范围(整数)吗?

  • $myVar <0
  • $myVar <10
  • $myVar <20
  • $myVar <30
  • $myVar <999
  • 违约

到目前为止,我有以下内容,但由于范围的原因,猜测这需要修改:

switch($myVar)
{
    case(<0):
        // do stuff
        break;
    case(<10):
        // do stuff
        break;
    case(<20):
        // do stuff
        break;
    case(<30):
        // do stuff
        break;
    case(<999):
        // do stuff
        break;
    default:
        // do stuff
        break;
}

非常感谢对此的任何帮助,蒂姆

你可以

这样做:

$myVar = 50;
switch (true) {
    case($myVar < 0):
        // do stuff
        break;
    case($myVar < 10):
        // do stuff
        break;
    case($myVar < 20):
        // do stuff
        break;
    case($myVar < 30):
        // do stuff
        break;
    case($myVar < 999):
        // do stuff
        break;
    default:
        // do stuff
        break;
}

在手册的评论中有一些很好的例子。

使用该in_array($myVar,range(100,200))检查该值是否存在于该范围。

$myVar = 50;
switch (true) {
    case(in_array($myVar,range(0,10))):
        // do stuff
        break;
    case(in_array($myVar,range(20,30))):
        // do stuff
        break;
    case(in_array($myVar,range(30,900))):
        // do stuff
        break;
    default:
        // do stuff
        break;
}

最新更新