Php 一个变量有多个比较运算符?

Php 一个变量有多个比较运算符?,php,Php,我需要对一个变量进行多次检查。我在这里看到了一个“Equals”示例:。 但它们是两个不同的变量。现在我有: if ($color == 'blue') { //do something } 但我需要多张$color支票。如果它也等于红色或绿色。这是怎么写的?简单到: if ($color == 'blue' || $color == 'red' || $color == 'green') { //do something } 还有其他几种选择。使用开关操作员: switch ($c

我需要对一个变量进行多次检查。我在这里看到了一个“Equals”示例:。 但它们是两个不同的变量。现在我有:

if ($color == 'blue')
{
//do something
}
但我需要多张$color支票。如果它也等于红色或绿色。这是怎么写的?

简单到:

if ($color == 'blue' || $color == 'red' || $color == 'green') {
    //do something
}
还有其他几种选择。使用
开关
操作员:

switch ($color) {
    case 'blue':
    case 'red':
    case 'green':
        //do something
}
或更复杂的使用功能:

$colors = array('blue', 'red', 'green');
if (in_array($color, $colors)) {
    //do something
}

使用switch语句

switch($color)
{
    case "blue":
        // do blue stuff
        break;
    case "yellow":
        // do yellow stuff
        break;
    case "red":
        // do red stuff
        break;
    default:
        // if everything else fails...
}
如果要在所有颜色上执行相同的操作,只需使用
| |
(布尔或)运算符

if ($color == "blue" || $color == "red" || $color == "yellow")
{
     // do stuff
}

您也可以在这一款中使用
preg\u match
。这可能有点过分了,但我相信它很快

$color = "blue";
$pattern = "/^red|blue|yellow$/";
if ( preg_match($pattern,$color) ) { 
    // Do something nice here!
} 

谢谢你的回答和链接!谢谢。另外,如果我有大约10种不同的颜色,哪种方法最快/最不依赖服务器?条件运算符(即
if
switch
)肯定是最快的,但对于大量比较(特别是对于一个变量)来说,不是很方便。然而,对于现代计算机,
in_array
方法既快速又美观。感谢您的回复和帮助;)