PHP流程控制考察点

php遍历数组的三种方法及各自的区别

php遍历数组的方式主要有三种:

  • for循环
  • foreach循环
  • while、list()、each()组合循环
    其中:
  • for循环只能遍历索引数组,foreach可以遍历索引和关联数组,联合使用list(),each()和while循环同样可以遍历索引和关联数组。
  • while、list()、each()组合不会reset(),也就是不会把指针清零。
  • foreach()遍历会对数组进行reset()操作

while、list()、each()组合

这三个要组合使用才能完成对数组的遍历

  • each()

返回当前元素的键名和键值,并将内部指针向前移动
该元素的键名和键值会被返回带有四个元素的数组中。两个元素(1 和 Value)包含键值,两个元素(0 和 Key)包含键名。

<?php
$people = array("Bill", "Steve", "Mark", "David");
print_r (each($people));// Array ( [1] => Bill [value] => Bill [0] => 0 [key] => 0 )
?>
  • list()

list() 函数用于在一次操作中给一组变量赋值。
该函数只用于数字索引的数组,且假定数字索引从 0 开始。如果存在不是数字索引的 则跳过。相当于list里面的第n个参数对应array里面数字索引为n-1的元素

  • list()each()配合

有了上面的认识,就可以将list()和each()进行组合:

<?php
list($key,$value) = each(my_array);//这样就将key value 取到了
  • list() each() while组合

注意到each()会将指针指向下一个元素,那么反复执行each()就会遍历到每一个元素,当each()指向最后时,返回false,因此可以配合while使用

<?php
while(list($key,$value) = each(my_array)){
    echo $key . "=>" . $value;
}

php分支考点

if...elseif...

尽量把可能性大的条件写在前面。

switch...case...

  • 和if不同,switch后面的控制表达式的数据类型只能是整形、符点类型或字符串
  • continue语句作用在switch里面,相当于break。如果想让continue跳出switch外面的循环,可以使用 continue2
  • 由于switch...case...会生成一个跳转表,直接跳转到case里,所以在执行复杂判断时使用switch case会大大提升效率
原文地址:https://www.cnblogs.com/clannadxr/p/7694846.html