循环
PHP 中提供了 4 种循环控制语句,分别是 while、do while、for 和 foreach。本节只讲解 foreach 循环,其它 3 种循环请猛击以下链接学习:
foreach (数组 as 值){
//执行的任务
}
//格式2
foreach (数组 as 下标 => 值){
//执行的任务
}
第一种格式遍历 array_expression 数组时,每次循环将数组的值赋给 $value;第二种遍历不仅将数组值赋给 $value,还将键名赋给 $key。
2. while
重复执行某项任务
上一节的while语句是先判断条件是否成立,再执行任务
while(条件){
//执行任务
}
首先执行任务,执行任务完毕,判断某个条件是否符合(条件返回值是否为TRUE)
若符合则再次执行任务,执行完毕任务,继续判定条件。
do{
//执行任务
}while(条件)
3. for
for($i = 1,$sum = 0;$i<=100;$i++){
}
4. foreach
不能foreach空, 否则报错
Warning: Invalid argument supplied for foreach() in
$empty = array();
$empty['222'] = 2;
foreach($empty['1111'] as $_){
echo "$_<br/>";
}
分支
1. switch
- 对表达式(通常是变量)进行一次计算
- 把表达式的值与结构中 case 的值进行比较
- 如果存在匹配,则执行与 case 关联的代码
- 代码执行后,break 语句 阻止代码跳入下一个 case 中继续执行
- 如果没有 case 为真,则使用 default 语句
PHP switch分支语句中省略break后还会执行其他case的原因分析
switch (expression){
case label1:
expression = label1 时执行的代码 ;
break;
case label2:
expression = label2 时执行的代码 ;
break;
default:
表达式的值不等于 label1 及 label2 时执行的代码;
}
ifelse
<?php
if(条件一){
//分配服务器干的任务A
}else if(条件二){
//分配服务器干的任务B
}else{
//分配服务器干的任务C
}
?>
跳转
goto
goto操作符可以用来跳转到程序中的某一指定位置。该目标位置可以用目标名称加上冒号来标记。
PHP中的goto有一定限制,只能在同一个文件和作用域中跳转,也就是说你无法跳出一个函数或类方法,也无法跳入到另一个函数。
你也无法跳入到任何循环或者switch 结构中。常见的用法是用来跳出循环或者switch,可以代替多层的break。
goto a;
echo 'Foo';//此句被略过
a:
echo 'Bar';
//上面的例子输出结果为: Bar;
可变参数
现在让我们看看php5.6的新变参语法…$args。
function foo(...$args)
{
$numargs = count($args);
echo "Number of arguments: $numargs<br />\n";
if ($numargs >= 2) {
echo "Second argument is: " . func_get_arg(1) . "<br />\n";
}
$arg_list = $args;
for ($i = 0; $i < $numargs; $i++) {
echo "Argument $i is: " . $arg_list[$i] . "<br />\n";
}
}
foo(1,2,3);
另外…$args可以直接传数组,支持在内部解包,这样先在外部把参数组装好,更优雅,如
$args = [1,2,3];
foo(...$args);