Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.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 Switch与if语句_Php_If Statement_Conditional_Switch Statement - Fatal编程技术网

Php Switch与if语句

Php Switch与if语句,php,if-statement,conditional,switch-statement,Php,If Statement,Conditional,Switch Statement,我进退两难。哪一种最好使用,为什么。。转换还是如果 switch ($x) { case 1: //mysql query //echo something break; case 2: //mysql query //echo something break; } 它们有不同的含义 第一个示例将在满足条件时停止 第二个将测试$x两次 您可能希望将第二个if设置为else if。这意味着一旦一个条件的计算结果为true,就会跳过该块 但如果你想知道哪一个最快,你

我进退两难。哪一种最好使用,为什么。。转换还是如果

switch ($x) 
{
case 1:
  //mysql query 
  //echo something
  break;
case 2:
  //mysql query 
  //echo something
  break;
}


它们有不同的含义

第一个示例将在满足条件时停止

第二个将测试
$x
两次

您可能希望将第二个
if
设置为
else if
。这意味着一旦一个条件的计算结果为true,就会跳过该块

但如果你想知道哪一个最快,你应该想想哪一个最有效地传达了我想要做的事情。它们都很可能最终成为目标体系结构中的条件跳转


过早优化。。。(你知道其余的:P)

首先,你拥有的不一样

switch(value)
  case condition1:
    break;
  case condition2:
    break

if (condition1) {
}
if (condition2) {
}

这些是同义词

switch(value)
  case condition1:
    break;
  case condition2:
    break

if (condition1) {
}
else if (condition2) {
}

第二,如果你说的是我的第二个例子,两者是同义词。然后使用
switch
语句可以减轻编写大量
if..else if
语句的痛苦


在我看来,开关还可以提供更多的可读性。但即使如此,有时使用
if…else
也会更好,尤其是在复杂逻辑中。

当有两个以上的选择时,开关会更好。它主要是为了代码的可读性和可维护性,而不是性能


但是,正如其他人所指出的,您的示例并不相同。

如果您有一个变量,一组可能的值,并且您希望对每个值执行不同的操作,这就是switch case的用途

Switch语句更明显地表明,您只是在确定变量具有哪些允许值


如果有更复杂的条件或多个变量要考虑,使用if语句。

切换语句将更快,因为它只检查值一次。

< P>两种语句都是通过比较某类参数,然后显示结果的决策语句。switch语句无疑比if语句快,但是if语句比switch语句有更大的优势,即当您必须使用诸如(,=,!=,=)之类的逻辑运算时。每当您遇到逻辑运算时,您都会被switch语句打断,但不要担心,还有另一种方法可以用来达到您的目标,即if语句、if-else语句或if-else-if语句。我建议您在大多数情况下使用if-else而不是switch-one。

可能的重复(该问题中的语言是C#但switch/case,如果语句在PHP中的行为通常相同),您的观点很好,特别是在我的广泛示例中!因此,我认为你的答案是正确的:)+1,因为如果。。。否则就更好了。。。我发现自己总是使用带有布尔的if语句,因为它提供了更简单的流程。
switch(value)
  case condition1:
    break;
  case condition2:
    break

if (condition1) {
}
else if (condition2) {
}