一、数组遍历的三种方式
for循环遍历、foreach遍历、while list() each()组合遍历
区别:
1.for循环只能遍历索引数组;foreach和while list each组合都可以遍历索引数组和关联数组;
2.foreach遍历时会重置数组指针,也就是会进行reset()操作;
3.while list each组合不会reset()。
二、分支结构
1.if...elseif 分支结构
在elseif语句中只能有一个表达式为true,即在elseif语句中只能有一个语句块被执行,多个elseif从句是排斥关系。
使用elseif语句中有一个基本原则,总把优先范围小的条件放在前面处理。也就是可能越大的条件就越往前面放。
2.switch...case 分支结构
和if不同的是,switch后面的控制表达式的数据类型只能是整型、浮点类型或字符串。
continue语句作用到switch的作用类似于break。跳出switch外的循环,可以使用continue 2。
for($i = 1; $i < 10; $i++){ switch ($i){ case 5: echo '这里是continue跳出 <br>'; continue; //类似于break 跳出switch分支 case 7: echo '这里是continue2跳出 <br>'; continue 2; //使用continue 2 将跳出本次for循环,不输出7 } echo $i. '<br>'; }
switch...case 会生成跳转表,会直接跳转到对应的case。
如果条件比一个简单的比较要复杂得多或者一个很多次得循环中,那么用switch语句可能会更快一些。
真题测试:
PHP中如何优化多个if...elseif语句得情况?
答:
1.可以将可能性更大得条件放在前面判断;
2.如果控制表达式为整型、浮点型或字符串,可以用switch...case分支语句。