1.if条件
if (条件) {
//语句
}
if (条件):
//语句
endif;
2.if-else条件
if (条件1) {
//语句1
} else {
//语句2
}
if (条件1):
//语句1
else:
//语句2
endif;
3.if-elseif条件
if (条件1) {
//语句1
} elseif (条件2) {
//语句2
} else {
//语句3
}
if (条件1):
//语句1
elseif (条件2):
//语句2
else:
//语句3
endif;
4.switch-case条件
switch-case
条件语句等同于一系列 if-else
条件语句。
switch
关键字后的表达式会按顺序与 case
关键字后的表达式进行松散比较(==
),如果遇到匹配的 case
表达式,则执行对应的 case
语句,最后执行此 case
语句末尾的 break
语句从而立即终止 switch-case
语句。如果没有遇到匹配的 case
表达式,则执行 default
语句(如果有 default
语句的话)。如果没有遇到匹配的 case
表达式也没有 default
语句,则没有代码将被执行。
如果在 case
语句的末尾没有 break
语句,则将继续执行后续的 case
语句 或 default
语句(如果有 default
语句的话)。
default
语句表示在所有 case
表达式都不匹配时才执行的语句。一个 switch-case
语句只可以有一个 default
语句。
$i = 3;
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";
}
$i = 0;
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";
endswitch;
5.match表达式
由于 match
是表达式,所以必须加上分号 ;
结尾。
$返回值 = match (主体表达式) {
单个条件表达式 => 返回表达式,
条件表达式1, 条件表达式2 => 返回表达式,
default => 返回表达式,
};
match
表达式跟 switch
语句相似,但有以下区别:
match
主体表达式与条件表达式的比较使用了严格比较(===
), 而switch
使用了松散比较(==
)。match
条件表达式对应的返回表达式末尾带隐式的break
语句,而switch
的case
语句的末尾在没有break
语句时会执行后续的case
语句 或default
语句。match
条件表达式必须彻底列举所有情况,如果主体表达式没有被任何条件表达式匹配,则会抛出UnhandledMatchError
。match
会返回一个值。
6.while循环
while (条件) {
//语句
}
while (条件):
//语句
endwhile;
7.do-while循环
注意:do-while
循环无 endwhile;
语法。
do {
//语句
} while (条件);
8.for循环
表达式1
只在第 1 次循环时无条件地执行一次。
每次循环的开始(包括第 1 次循环),表达式2
都会执行,如果表达式2 为 true
,则执行花括号内的语句,如果表达式2
为 false
,循环立即停止。
每次循环的结束(包括第 1次循环),表达式3
都会执行。
for (表达式1; 表达式2; 表达式3) {
//语句
}
for (表达式1; 表达式2; 表达式3):
//语句
endfor;
9.foreach循环
foreach
用于迭代 数组的元素 或 对象的属性。
foreach (iterable_expression as $value) {
//语句
}
foreach (iterable_expression as $key => $value) {
//语句
}
foreach (iterable_expression as $value):
//语句
endforeach;
foreach (iterable_expression as $key => $value):
//语句
endforeach;
10.break跳转
break
用于立即终止当前循环结构,然后执行当前循环结构外的代码。
break
可以接受一个可选的整数类型的参数,来决定跳出外围的几层循环结构。默认值为 1
,仅仅跳出外围的最近一层循环结构。
break;
break int;
11.continue跳转
continue
用于在当前循环结构中跳过本次迭代剩余的代码,然后执行下一次迭代。
continue
可以接受一个可选的整数类型的参数,来决定跳过外围的几层循环结构。默认值为 1
,仅仅跳过外围的最近一层循环结构。
continue;
continue int;
12.goto跳转
goto
可以被用来跳转到程序中的另一个位置。该目标位置可以用区分大小写的 label
加上冒号(:
)来表示,而跳转语句则是 goto
之后接上 label
。
goto
和 目标位置必须位于同一个文件和上下文,也就是说无法跳出一个函数或方法,也无法跳入到另一个函数或方法中。也无法跳入到任何形式的循环或者 switch
中,但可以跳出循环或者 switch
,通常的用法是用 goto
代替多层的 break
。
goto label;
label:
//示例一
goto a;
echo 'Foo';
a:
echo 'Bar';
//输出
Bar
//示例二
for($i=0,$j=50; $i<100; $i++) {
while($j--) {
if($j==17) goto end;
}
}
echo "i = $i";
end:
echo 'j hit 17';
//输出
j hit 17
13.return跳转
return
语句会将程序控制权立即返还给调用方。如果在一个函数体中调用 return
语句,将立即结束当前函数的执行并将 return
后的表达式作为函数的返回值。
return
是语言结构而不是函数,如果其后没有提供表达式,此时返回 null
,一定不能用空的圆括号跟在 return
后面,否则会导致解析错误。如果其后提供了表达式,则没有必要用圆括号将表达式括起来,也不推荐这样用。
return;
return 表达式;
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/php/phplang/28881.html