1.8PHP语言的条件(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/php/phplang/4944.html

(0)
上一篇 2021年1月8日 01:53
下一篇 2021年1月9日 02:02

相关推荐

  • 3.6PHP类的成员访问控制(Visibility)

    对属性或方法的访问控制(PHP 7.1.0 以后支持常量),是通过在前面添加关键字 public(公有),protected(受保护)或 private(私有)来实现的。被定义为public的类成员可以在类的内部和外部被访问。被定义为protected的类成员则可以被其自身以及其子类和父类访问。被定…

    PHP语言教程 2021年3月6日
    07460
  • 1.5PHP语言的变量(Variable)和常量(Constant)

    1.变量声明 变量用美元符$后跟标识符来表示。变量名是区分大小写的。 2.变量分类 2.1全局变量(global) 函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。如果函数内部需要使用,需使用global关键字调用。 2.2静态变量(static) 通常,当函数完成/执行后,会删除所有变量。不过,…

    PHP语言教程 2021年1月5日
    04350
  • 2.2PHP标量(Scalar)类型之布尔(bool)、整型(int)、浮点型(float)和null

    1.布尔型(bool) bool类型仅有两个值:true 或 false,不区分大小写。 2.整型(int) int类型取值范围:-9223372036854775808 至 9223372036854775807。 整数溢出:如果给定的一个数超出了 int 的范围,将会被解释为 floa…

    PHP语言教程 2021年2月2日
    08860

发表回复

登录后才能评论