
switch语句用于根据不同的条件执行不同的操作. 本文介绍PHP中switch语句的详细用法示例. 它涉及交换机使用的知识. 对开关用法感兴趣的朋友将通过本文一起学习.
switch是switch语句,所以很多朋友只知道简单switch语句的用法,下面的小型教程编辑器将为您提供有关switch用法的详细示例.
它仅被称为“高级”用法,因为我还没有掌握switch的最基本用法,因此switch case语句例子,我接下来要讲的实际上是它的基本用法!
switch语句类似于具有相同表达式的一系列IF语句. 在许多情况下,您需要将相同的变量(或表达式)与许多不同的值进行比较,并根据其等于的值执行不同的代码. 这正是switch语句的用途.
注意: 请注意,与其他语言不同,continue语句的工作方式类似于on break. 如果您在循环中有一个开关,并且想要继续到外循环中的下一轮,请使用继续2.

以下两个示例使用两种不同的方法来实现相同的目的,一个带有一系列if语句,另一个带有switch语句:
示例1的开关结构
<?php
if ($i == 0)
{
echo "i equals 0";
}
elseif ($i == 1)
{
echo "i equals 1";
}
elseif ($i == 2)
{
echo "i equals 2";
}
switch ($i)
{
case 0:
echo "i equals 0";
break;
case 1:
echo "i equals 1";
break;
case 2:
echo "i equals 2";
break;
}
?>
示例2的开关结构可以使用字符串
<?php
switch ($i)
{
case "apple":
echo "i is apple";
break;
case "bar":
echo "i is bar";
break;
case "cake":
echo "i is cake";
break;
}
?>

重要: (这是我以前没有学过的!)
为避免错误,了解开关的执行方式非常重要. switch语句逐行执行(实际上是逐条语句执行). 开始时不执行任何代码. PHP仅在case语句中的值与switch表达式的值匹配时才执行语句,直到遇到switch块的末尾(例如return语句)或遇到第一个break语句为止. 如果您没有在案例段的末尾写一个中断,PHP将在下一个案例中继续执行该段. 例如:
<?php
switch ($i)
{
case 0:
echo "i equals 0";
case 1:
echo "i equals 1";
case 2:
echo "i equals 2";
}
?>
特别注意: 如果$ i在这里等于3,PHP将不会执行任何echo语句!但是,如果$ i等于0,PHP将执行所有echo语句!如果$ i等于1,PHP将执行接下来的两个echo语句. 仅当$ i等于2时,您才会获得“预期”结果switch case语句例子,仅显示“ i等于2”. 因此,请不要忘记break语句很重要(即使您在某些情况下有意避免提供它们).
[效率]该条件在switch语句中仅评估一次,并用于与每个case语句进行比较. 条件将在elseif语句中再次评估. 如果条件比简单的比较复杂,或者循环多次,则switch语句可能会更快.

在一种情况下的语句也可以为空,这只是将控制权转移到在另一种情况下的语句.
<?php
switch ($i)
{
case 0:
case 1:
case 2:
echo "i is less than 3 but not negative";
break;
case 3:
echo "i is 3";
}
?>
默认情况下是特殊情况. 它匹配与其他情况不匹配的所有内容. 例如:
<?php
switch ($i)
{
case 0:
echo "i equals 0";
break;
case 1:
echo "i equals 1";
break;
case 2:
echo "i equals 2";
break;
default:
echo "i is not equal to 0, 1 or 2";
}
?>
case表达式可以是任何求值为简单类型的表达式,即整数或浮点数以及字符串. 除非将数组或对象取消引用为简单类型,否则不能使用它们.

[战斗]基于以上知识,编写一个函数: 计算容量值实际代表的字节数
<?php
/**
* 返回字节数
*
* @param string $val 如 400M
*/
function return_bytes($val = '')
{
$val = trim($val);
$last = strtolower($val{strlen($val)-1});
switch ($last)
{
case 'g':
$val *= 1024;
case 'm':
$val *= 1024;
case 'k':
$val *= 1024;
}
return $val;
}
$memorylimit = ini_get('memory_limit');
echo $memorylimit, '<br/>';
echo return_bytes($memorylimit);
输出:
400M
419430400
特别说明: 当$ val = 400M时,命中'm',并且$ val * = 1024;执行,但是因为没有中断语言,它将继续以大小写'k'开头并执行$ val * = 1024;因此,语句通常等效于执行400 * 1024 * 1024.
以上是本文的完整说明,希望对每个人学习使用switch都有帮助.
上面是php用例的细节: switch case语句. 有关更多详细信息,请关注php中文网上的其他相关文章!
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-159291-1.html
这种挑衅有毛用