PHP基础之流程控制

刺骨的言语ヽ痛彻心扉 2022-06-10 09:39 301阅读 0赞

PHP中的流程控制语句与其他编程语言类似,这里就不多说了,直接通过代码来看吧。

1.if条件语句

if(exp)

{

statement1;

}

else

{

statement2;

}

很容易理解,如果exp为true,那么执行statement1,否则执行statement2.此处exp为布尔类型。

当程序有多个分支的时候,可以使用else if 语句继续添加条件判断。

if(exp)

{

statement1;

}

else if(exp2)

{

statement2;

}

else

{

statemement3;

}

  1. $int_car_price = 80;
  2. if ($int_car_price > 100) {
  3. echo "Expensive Car Price. " . "<br/>";
  4. } else if ($int_car_price < 100 && $int_car_price > 20) {
  5. echo "Good Car Price. " . "<br/>";
  6. } else {
  7. echo "Cheap Car Price." . "<br/>";
  8. }

输出:Good Car Price.

2.switch分支

switch语句类似与有多个判断条件的if语句。switch会将一个变量或者表达式的值与多个不同的值进行比较,若与其中一个的值相等,那么就执行该分支下的代码。

如果比较完所有分支还没有找到的话,那么就执行默认的代(default分支下的代码)。

  1. $x = 3;
  2. switch ($x) {
  3. case 0:
  4. echo "The variable is 0." . "<br/>";
  5. break;
  6. case 1:
  7. echo "The variable is 1." . "<br/>";
  8. break;
  9. case 2:
  10. echo "The variable is 2." . "<br/>";
  11. break;
  12. case 3:
  13. echo "The variable is 3." . "<br/>";
  14. break;
  15. default:
  16. echo "The variable is not found." . "<br/>";
  17. break;
  18. }

输出:The variable is 3.

3.while语句

语法格式:

while(exp)

{

statement;

}

当exp为真时,执行里面的代码。先进行判读,然后决定是否执行。

  1. $y = 95;
  2. while ($y < 100) {
  3. $y += 1;
  4. echo "y=$y" . "<br/>";
  5. }

输出:

  1. y=96
  2. y=97
  3. y=98
  4. y=99
  5. y=100

4.do while语句

语法格式:

do

{

statement;

}while(exp);

和while语句类似,唯一的区别在与do while 语句会先执行do语句块的代码,然后判断exp值来决定是否继续执行代码块。

也就是说,该语句不论exp值为true或者false都至少执行一次。

  1. $do_exp = 100;
  2. do {
  3. $do_exp += 1;
  4. echo "do_exp=$do_exp" . "<br/>";
  5. } while ($do_exp < 100);

输出:do_exp=101

5.for循环

这是我们最熟悉的语句了吧,

语法格式:

for(exp1;exp2;exp3)

{

statement;

}

该语句先执行exp1,然后执行代码块,在执行exp3,然后判断exp2表达式的条件真假,如果为真,则继续执行代码块,反之跳出循环。

特别说明:exp2可以是多个表达式,表达式之间用逗号分隔,在程序执行过程中,所有表达式都会被计算,但是最终只取最后一个表达式的结果。如果exp2为空,则表示进行无限循环,此时我们可以在代码块中加入相应的判断语句来结束循环。

  1. for ($i = 0; $i < 10; $i++) {
  2. echo "i=$i" . "<br/>";
  3. }
  4. for ($i = 0;; $i++) {
  5. if ($i >= 10) {
  6. break;
  7. }
  8. echo "i=$i" . "<br/>";
  9. }

两个for语句的输出是相同的:

  1. i=0
  2. i=1
  3. i=2
  4. i=3
  5. i=4
  6. i=5
  7. i=6
  8. i=7
  9. i=8
  10. i=9

6.foreach语句

foreach语句是循环遍历数组时常用的方法,它仅仅能够用于数组和对象。

语法格式:

foreach(array_exp as $value)

{

statement;

}

或者

foreach(array_exp as $key => $value)

{

statement;

}

  1. $array = [0, 1, 2, 3, 4];
  2. foreach ($array as $value) {
  3. echo "value is :$value" . "<br/>";
  4. }
  5. foreach ($array as $key => $value) {
  6. echo "value is :$value key is :$key" . "<br/>";
  7. }

输出:

  1. value is :0
  2. value is :1
  3. value is :2
  4. value is :3
  5. value is :4
  6. value is :0 key is :0
  7. value is :1 key is :1
  8. value is :2 key is :2
  9. value is :3 key is :3
  10. value is :4 key is :4

值得一提的是在php7中,foreach是对数组的复制操作,也就是说在循环过程中对数组的修改不会影响循环行为。但是引用类型的循环时会对数组本身产生影响。

  1. $arrry2 = [0];
  2. foreach ($arrry2 as $value) {
  3. $arrry2[0] = 5;
  4. var_dump($value);
  5. echo "<br/>";
  6. }
  7. foreach ($arrry2 as &$value) {
  8. $arrry2[0] = 5;
  9. var_dump($value);
  10. echo "<br/>";
  11. }

输出:

  1. int(0)
  2. int(5)

7.跳转语句

跳转语句包含break,continue以及goto语句。break和continue是在循环语句中使用。利用goto语句程序员可以在同一个文件和作用域内进行任意位置的跳转。

  1. for ($a = 0; $a < 10; $a++) {
  2. if ($a == 2) {
  3. echo "value is :$a now break;" . "<br/>";
  4. }
  5. if ($a == 5) {
  6. echo "value is :$a now continue;" . "<br/>";
  7. }
  8. if ($a == 8) {
  9. goto a;
  10. }
  11. }
  12. a:
  13. echo "跳出for循环" . "<br/>";

输出:

  1. value is :2 now break;
  2. value is :5 now continue;
  3. 跳出for循环

发表评论

表情:
评论列表 (有 0 条评论,301人围观)

还没有评论,来说两句吧...

相关阅读

    相关 PHP流程控制

    表达式:凡是有值返回的结构(语句)都可以称之为表达式 1.所有的值本身都可以是表达式 2.所有的运算符运算的结果也都是表达式 PHP的流程控制:顺序结构,分支结构,循