php面试题PHP经验分享PHP实战

5.流程控制

2017-12-22  本文已影响21人  漏诺

流程控制

请列出3种PHP数组循环操作的语法,并注明各种循环的区别?

for循环

foreach循环

while ,list(),each()组合循环

区别

for循环只能遍历索引数组

foreach可以遍历索引和关联数组

联合使用while ,list(),each()循环同样可以遍历索引和关联数组

while ,list(),each()组合不会reset()

foreach遍历会对数组进行reset()操作

reset()数组指针操作。

如果没有reset()操作,遍历数组就只是一个片段

延伸:分支结构

If.....elseif

在elseif语句中,只能有一个表达式为true,即在else语句中,只能有一个语句块被执行,多个elseif从句是排斥关系。

使用else语句有一个基本原则,总是把优先范围小的条件放在前面处理。

If(){

}elseif(){

}elseif(){

}else{

}

switch...case...

和if不同的是,switch后面的控制表达式的数据类型只能是整型,浮点型或者字符串

switch($var){

    case...;

            break;

    case...;

        break;

    case...;

        break;

     deault:...;

    break;

}

1.和if不同的是,switch后面的控制表达式的数据类型只能是整型,浮点型或者字符串

2.continue的语句作用到switch的作用类似于break

switch($var){

    case...;

        continue;

    case...;

        break;

    case...;

        break;

    deault:...;

       break;

}

3.跳出switch外的循环,可以使用continue2

for(){

switch($var){

    case...;

        continue;->continue2

    case...;

        break;

    case...;

        break;

    deault:...;

        break;

}

}

4.switch...case会生成跳转表,直接跳转到对应case

5.如果条件复杂,并且在一个很多次循环中,switch效率更高一些。因为switch会生成表,所以效率高。

解题方法

理解循环内部机制,更易于记忆foreach的reset特性,分支结构中,理解了switch...case的执行步骤也就不难理解为什么效率高了。

真题

php中如何优化多个if...elseif语句的情况

1.表达式范围大的往前放

2.如果判断复杂,值是整型,浮点型和字符串,使用switch。

上一篇 下一篇

猜你喜欢

热点阅读