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

1.if条件

//常规写法
if (expr) {
    statements;
}
//end写法
if (expr):
    statements;
endif;

2.if..else条件

//常规写法
if (expr) {
    statements;
} else {
    statements;
}
//end写法
if (expr):
    statements;
else:
    statements;
endif;

3.if..elseif..else条件

//常规写法
if (expr1) {
    statements;
} elseif (exp2) {
    statements;
} else {
    statements;
}
//end写法
if (expr1):
    statements;
elseif (exp2):
    statements;
else:
    statements;
endif;

4.switch..case条件

switch 语句类似于具有同一个表达式的一系列 if 语句。很多场合下需要把同一个变量(或表达式)与很多不同的值比较,并根据它等于哪个值来执行不同的代码,这正是 switch 语句的用途。switch是松散的相等检查 ( ==)。

一个 case 的特例是 default。当匹配了任何和其它 case 都不匹配的情况。

//常规写法
$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";
}
//end写法
$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";
endswitch;

5.match表达式

match类似于switch,不过与switch不同的是,match是严格的相等检查(===)。

$return_value = match (subject_expression) {
    single_conditional_expression => return_expression,
    conditional_expression1, conditional_expression2 => return_expression,
};
$i = 3;
$return_value = match ($i) {
    0 => "i equals 0",
    1 => "i equals 1",
    2 => "i equals 2",
    default => "i is not equal to 0, 1 or 2",
};

6.while循环

//常规写法
while (expr) {
    statements;
}
//end写法
while (expr):
    statements;
endwhile;

7.do..while循环

do-while 循环和 while 循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。

do {
    statements;
} while (expr);

8.for循环

expr1(第一个表达式)在循环开始前无条件求值(并执行)一次。

expr2 在每次循环开始前求值。如果值为 true,则继续循环,执行嵌套的循环语句。如果值为 false,则终止循环。

expr3 在每次循环之后被求值(并执行)。

//常规写法
for (expr1; expr2; expr3) {
    statements;
}
//end写法
for (expr1; expr2; expr3):
    statements;
endfor;

9.foreach循环

foreach 语法结构提供了 遍历数组迭代对象 两大功能。

for 对于数组仅能够遍历索引数组,foreach能够遍历索引数组和关联数组以及迭代对象。

第一种格式遍历给定的 iterable_expression 迭代器。每次循环中,当前单元的值被赋给 $value

//常规写法
foreach (iterable_expression as $value) {
    statements;
}
//end写法
foreach (iterable_expression as $value):
    statements;
endforeach;

第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key

foreach (iterable_expression as $key => $value) {
    statements;
}
foreach (iterable_expression as $key => $value):
    statements;
endforeach;

10.break跳转

当条件求值为真时,break跳过当前循环并终止当前 forforeachwhiledo-while 或者 switch 的执行。

for ($i = 0; $i < 5; $i++) {
    if ($i == 2) {
        break;
    }
    echo "$i\n";
}
//输出
0
1

11.continue跳转

当条件求值为真时,continue跳过当前循环并继续当前 forforeachwhiledo-while 或者 switch 的执行。

for ($i = 0; $i < 5; $i++) {
    if ($i == 2) {
        continue;
    }
    echo "$i\n";
}
//输出
0
1
3
4

12.goto跳转

goto 操作符可以用来跳转到程序中的另一位置,该目标位置可以用目标名称加上冒号来标记,而跳转指令是 goto 之后接上目标名称。PHP 中的 goto 有一定限制,目标位置只能位于同一个文件和作用域,也就是说无法跳出一个函数或类方法,也无法跳入到另一个函数。也无法跳入到任何循环或者 switch 结构中。可以跳出循环或者 switch,通常的用法是用 goto 代替多层的 break

示例一

<?php
goto a;
echo 'Foo';
 
a:
echo 'Bar';
?>
//输出
Bar

示例二

<?php
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 也会终止 eval() 语句或者脚本文件的执行。

注意:return 是语言结构而不是函数,因此其参数没有必要用括号将其括起来,也不推荐这样用。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/back/php/4944.html

发表评论

登录后才能评论