流程控制

image.png

文章来自:zhouxiaoshuai

图片发自App

流程控制:

题:列出三种PHP数组循环操作的语法,并说明各种循环的区别;

考点:

  • 遍历数组的三种方式以及各自的区别;
  • 分支控制结构流程控制;

题:列出三种PHP数组循环操作的语法,并说明各种循环的区别;
解答:循环数组的三种方式:

  1. for()循环(while(), do whlie循环);
  2. foreach()循环;
  3. while(),list(),each() 组合循环;
区别:
  • for()循环只能遍历索引数组;
  • foreach()循环既可以遍历索引数组,又可以遍历关联数组;
  • while(), list(), each() 组合循环同样既可以循环索引数组,又可以遍历关联数组;
foreach()while(), list(), each()组合循环的区别:
  • 组合使用while(), list(), each()组合遍历数组,不会对数组进行reset操作;(reset:重置数组指针);
  • 使用foreach()遍历数组,会对数组进行reset操作,将数组指针重置;

分支结构流程控制:

  1. if.....elseif.....:
  • 在elseif语句中只能有一个表达式为true,即在elseif语句中只能有一个语句块被执行,多个elseif从句是排斥的关系;
  • 使用elseif有一个基本原则:总是把优先级范围小的条件放在前面处理(可能性较大的表达式尽量写在前面);
  1. switch...case...:
  • if 不同的是,switch后面的控制表达式的数据类型只能是: 整型,浮点型, 字符串;
  • breakcontinue 的区别:
    -- break 用来跳出目前执行的循环,并不再继续执行循环了。
    -- continue 立即停止目前执行循环,并回到循环的条件判断处,继续下一个循环。
continue 语句作用到switch 的作用类似于break ;跳出switch外的循环,可以使用continue2

注意:switch...case... 本身会生成跳转表(索引表),直接跳转到对应的case中,效率会高点;

解题方法:
理解循环内部机制,更易于极易foreach 的reset特性;分之结构中,理解switch...case...的底层跳转表更易于理解效率高!
试题:

'PHP中如何优化多个if...elseif语句的情况?'
1. 表达式可能性大的,放在判断前面;(表达式可能性越大,越放在前面);
2. 如果判断的内容是 整型,浮点型和字符串三种数据类型,并且内容较为负责的话,则可以使用switch...case...会有效率的提升;

你可能感兴趣的:(流程控制)