1.请列出3种PHP数组循环操作的语法,并注明各种循环的区别?
for ($i=0; $i < ; $i++) {
# code...
}
foreach ($variable as $key => $value) {
# code...
}
reset($fruit);
while (list($key, $val) = each($fruit)) {
echo "$key => $val\n";
}
for循环只能便利索引数组
foreach可以遍历索引和关联数组,便利会对数组进行reset操作
联合使用list、each、while循环同样可以便利索引和关联数组
分支结构,但不会reset把数组指针重置
each函数在PHP 7.2.0中已经被弃用。非常不鼓励依赖这一功能。
2.分支结构if ...elseif ...
在elseif语句中,只能有一个表达式为true,即在elseif语句中只能有一个语句块被执行,多个elseif从句是排斥关系。
使用elseif语句有一个基本原则,总是优先把范围小的条件放在前面处理。
3.分支结构switch..case..
switch (variable) {
case 'value':
# code...
break;
default:
# code...
break;
}
和if不同的是,switch后面的控制表达式的数据类型只能是整形、浮点类型或者字符串
在单个switch里边continue相当于break
如果switch外有for循环,跳出for循环使用continue 2;
switch..case..会生成条件索引表,直接跳转到对应的case,不会一层一层判断
效率:如果条件比一个简单的比较要复杂得多,或者在一个很多次的循环中,那么用switch语句可能会快一些
4.PHP中如何优化多个if...elseif语句的情况?
1.优先把范围小的条件放在前面处理
2.使用switch..case..替换
5.continue 和 break
continue 在循环结构用用来跳过本次循环中剩余的代码并在条件求值为真时开始执行下一次循环。
Note: 注意在 PHP 中 switch 语句被认为是可以使用 continue 的一种循环结构。
continue 接受一个可选的数字参数来决定跳过几重循环到循环结尾。默认值是 1,即跳到当前循环末尾。
break 结束当前 for,foreach,while,do-while 或者 switch 结构的执行。
break 可以接受一个可选的数字参数来决定跳出几重循环。
6.包含运行指定文件的几种语法和区别?
require 和 include 几乎完全一样,除了处理失败的方式不同之外。require 在出错时产生 E_COMPILE_ERROR 级别的错误。换句话说将导致脚本中止而 include 只产生警告(E_WARNING),脚本会继续运行。
require_once 语句和 require 语句完全相同,唯一区别是 PHP 会检查该文件是否已经被包含过,如果是则不会再次包含。
include_once 可以用于在脚本执行期间同一个文件有可能被包含超过一次的情况下,想确保它只被包含一次以避免函数重定义,变量重新赋值等问题。