用 if 和 match 让你的脚本做出反应,再用 for、foreach 和 while 重复执行操作。
在 Kodokon 中打开本课条件让脚本能够选择一条路径:“如果这为真,就做这件事,否则就做另一件事”。if 关键字会测试一个结果为 true 或 false 的表达式,使用的是比较运算符:>(大于)、<(小于)、>=、<=、===(相等,值相同并且类型相同)以及 !==(不等)。如果前一个测试失败,elseif 会再加一个测试;当所有测试都不成立时,else 就会运行。测试从上到下依次读取:第一个为真的胜出。
<?php
$temperature = 12;
if ($temperature > 25) {
echo "It's hot.";
} elseif ($temperature > 15) {
echo "It's mild.";
} else {
echo "Grab a jacket!";
}当你把同一个变量与好几个特定的值作比较时,match 表达式更为优雅。它把变量与每个分支逐一比较(严格比较,值和类型都要一致),并直接返回一个值,你可以把它存进变量。当没有任何值匹配时,default 分支会充当安全网。
<?php
$day = "saturday";
$message = match ($day) {
"saturday", "sunday" => "It's the weekend!",
"monday" => "Hang in there, back to work.",
default => "Have a good weekday.",
};
echo $message;循环会把一段指令重复执行多次,而无需复制粘贴代码。当你事先就知道要循环多少轮时,for 循环是理想之选。它分为三部分,用分号隔开:起始($i = 1)、继续条件($i <= 5,只要它为真,循环就继续)以及步进($i++,在每一轮给 $i 加 1)。
<?php
for ($i = 1; $i <= 5; $i++) {
echo "Round number {$i}<br>";
}另外两种循环让工具箱更加完整。foreach 会遍历一个数组(一个值的列表,将在下一课中讲解),并把每个元素依次交给你。while 只要它的条件保持为真,就会重复执行它的代码块:需要你在循环内部改变状况,让它最终能够停下来。
<?php
$fruits = ["apple", "pear", "kiwi"];
foreach ($fruits as $fruit) {
echo "Fruit: {$fruit}<br>";
}
$countdown = 3;
while ($countdown > 0) {
echo "{$countdown}...<br>";
$countdown--;
}
echo "Go!";else 代码块什么时候运行?match 区别于 if 的地方?while 条件永远保持为真,会发生什么?