1.10PHP语言的条件(Conditional)、循环(Loop)、跳转(Jump)语句

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 语句,而 switchcase 语句的末尾在没有 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,则执行花括号内的语句,如果表达式2false,循环立即停止。

每次循环的结束(包括第 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

(0)
上一篇 2023年6月9日
下一篇 2023年6月11日

相关推荐

  • 1.1PHP语言的标记(Tag)

    当解析一个文件时,PHP 会寻找起始和结束标记,也就是 <?php 和 ?>,而任何起始和结束标记之外的部分不会被 PHP 解析器处理,而是会被简单地原样输出。 例外地是当这部分处于条件语句中间时,此时 PHP 解释器会根据条件判断来决定哪些输出,哪些跳过。 以下示例中 PHP 将跳过条件语句未达成的段落,即使该…

    PHP语言教程 2023年6月1日
    0140
  • 1.7PHP语言的常量(Constant)

    1.常量声明 1.1define()函数声明方式 使用 define() 函数声明常量,值可以为任意表达式。 1.2const关键字声明方式 使用 const 关键字声明常量,值只可以为 标量类型(int, float, bool, string)表达式 或者 包含元素只为标量类型(int, flo…

    PHP语言教程 2023年6月7日
    0250
  • 1.10PHP语言的条件(Conditional)、循环(Loop)、跳转(Jump)语句

    1.if条件 2.if-else条件 3.if-elseif条件 4.switch-case条件 switch-case 条件语句等同于一系列 if-else 条件语句。 switch 关键字后的表达式会按顺序与 case 关键字后的表达式进行松散比较(==),如果遇到匹配的 case 表达式,则执行对应的 …

    PHP语言教程 2023年6月10日 23:24
    0570

发表回复

登录后才能评论