php基础知识-流程控制
在面试中,考官往往喜欢基础扎实的面试者,而流程控制相关的考点,往往是大家容易忽视的一个点,今天冷月就来帮各位小伙伴们梳理一下,在面试中流程控制相关的注意点。
回顾真题
请列出3种php数组循环操作的语法,并注明各种循环的区别
答案:
for
foreach
while、list()、each()
for()
for循环是常见的循环结构,但是只能遍历索引数组。
foreach()
foreach既可以遍历索引数组,也可以遍历关联数组。但是每次调用foreach时数组的内部指针会重置到数组中的第一个元素。
while、list()、each()
list()函数可以取出数组中指定的一个元素。
each()函数参数必须传一个数组,返回的值也是一个数组,该数组中包含4个元素,且下标一定是固定的(1 value 0 key)。each()函数处理当前数组中的第一个元素后,会自动将指针指向下一个元素,如果指针已经在结束位置了,如果再使用each()获取元素则返回false。
使用方法如下:
<?php /** * Created by 冷月小白. * 微信公众号: 学长冷月 */ $arr = ['a','b','c'];
while(list($key,$value)=each($arr))
{ echo $key."=>".$value; echo "<br>"; } ?>
既可以遍历索引数组,也可以遍历关联数组。
考点分析
本考点看似是考察各位对于php遍历数组的理解,其实是在考察大家对于流程控制的理解。大家在平时的练习中也多注意对基础的理解。冷月在上几篇博文中,也讲到了这方面的知识。大家可以 关注冷月的微信公众号:学长冷月。回复:php面试。冷月将整理好的资料发给您。 下面冷月将介绍几个常考点。
if……else if
在若干条件之一成立时执行一个代码块,也就是说一次执行中,只能有一个代码块被执行。
<?php /** * Created by 冷月小白. * 微信公众号: 学长冷月 */
if (条件) { if 条件成立时执行的代码; } elseif (条件) { elseif 条件成立时执行的代码; } else { 条件不成立时执行的代码; }
?>
大家可以思考一下,如何提高if……else if的性能。答案是,尽可能把范围小的放到前面来处理。这样php脚本在执行中,就可能执行更少的匹配。或者当判断的条件是整形、浮点、字符串时可以使用Switch 语句。
Switch 语句
switch 语句用于根据多个不同条件执行不同动作。在复杂多层次循环中,switch语句可以快一些。
<?php /** * Created by 冷月小白. * 微信公众号: 学长冷月 */ switch (x) { case 1: //if x==1,执行 break; //在switch语句中,continue的效果和break一样 case 2: //if x==2,执行 break; default: //if x!=1 || x!=2,执行 } ?>
一网打尽
<?php /** * Created by 冷月小白. * 微信公众号: 学长冷月 */ $a = 0; $b = 0; if ($a = 3 > 0 || $b = 3 > 0) { $a++; $b++; echo $a; //1 echo $b; //1 } ?>
在学习了本博文之后,冷月来测试一下大家对于知识的掌握程度。请看下面这道题:
PHP中如何优化多个if……elseif语句的情况?
答案:
将条件范围小的尽可能放在前面处理;
当判断条件为整形、浮点、字符串数据类型时用switch……case……语句。
勤加练习才能早日收获自己的offer哦!