其它运算符
@ => -> @:单行抑制错误。 => : 数组中键值对关联符 -> : 对象访问成员方法或者成员属性符
: 这个可以执行系统的一些指令
1、顺序结构
2、分支结构
单向
形式:
if (表达式) {
语句块
}
执行流程:如果表达式为真,则执行语句块,如果为假,则不执行
【注】大括号一般都要加上,也有些二货不加。如果不加,那么只有if下面的第一条语句是if所影响的,其它都不是。所以一定要加上大括号。
双向
形式:
if (表达式) {
语句块1
} else {
语句块2
}
执行流程:如果表达式为真,那么执行语句块1,如果表达式为假,那么执行语句块2
【注】语句块1和语句块2不会同时都执行,也不会同时都不执行,其肯定会执行其中一个
多向
形式:
if (表达式1) {
语句块1
} elseif (表达式2) {
语句块2
} elseif (表达式3) {
语句块3
} else {
语句块4
}
执行流程:首先会判断表达式1是否为真,如果为真,则执行语句块1,然后直接跳出整个结构。如果为假,会继续判断表达式2是否为真,如果为真,执行语句块2,然后跳出整个结构,如果为假,接着往下执行这样的判断,最后如果都为假,则执行最后一个else语句块
理论上elseif可以有无限多个,else也可以不加
嵌套
形式:
if (表达式1) {
if (表达式2) {
} else {
}
} else {
}
switch case
格式:
switch (表达式) {
case 常量1:
语句块1;
break;
case 常量2:
语句块2;
break;
case 常量3:
语句块3;
break;
default:
语句块
break;
}
//mt_rand会产生一个随机数,范围在1-10之间
$x = mt_rand(1, 10);
/*
1、基本上每一个case都要有一个break,break用来结束整个结构。
2、case后要写常量,数字或者字符串都可以
3、default在switch结构中可以加,也可以不加
4、break也可以省略,但是省略后switch会接着往下执行,直到碰到break结束整个结构
5、多个case可以同时执行同样的语句。
*/
3、循环结构
while
基本语法
格式:
while (表达式) {
循环体;
}
执行流程:首先判断表达式是否为真,如果为真,执行循环体,然后再次判断表达式是否为真,如果为真,接着执行循环体,直到表达式为假,循环退出。
打印表格
人在江湖飘
人在江湖飘呀,哪有不挨刀呀,几刀砍死你 1-5;
/*
人在江湖飘
分析:当两个人所出的数字相差1 -1 4 -4的时候肯定会有输赢,其他的平局,接着干。
没有输赢的时候一直出,有输赢的时候才退出这个循环。
【注】break只能用来跳出循环和跳出switch结构,和if无关
*/
while (1) {
$haifeng = mt_rand(1, 5);
$xinlong = mt_rand(1, 5);
$sub = $haifeng - $xinlong;
if ((abs($sub) == 1) || (abs($sub) == 4)) { //在这里面他们两个肯定分出了输赢
if (($sub == 1) || ($sub == -4)) {
echo '海峰技高一筹,出了一个'.$haifeng.'赢了新龙的'.$xinlong;
//break用来退出循环
break;
}
if (($sub == -1) || ($sub == 4)) {
echo '新龙技高一筹,出了一个'.$xinlong.'赢了海峰的'.$haifeng;
break;
}
}
echo '海峰和新龙旗鼓相当,接着干<br />';
}
do-while(了解)
格式:
do {
循环体
} while (表达式);
执行流程:首先执行一遍循环体,然后判断表达式是否为真,如果为真,继续执行循环体,然后再次判断表达式是否为真,直到表达式为假,循环退出。
问:do-while和while有什么区别?
while:先判断,再执行循环体。
do-while:先执行。再判断表达式。
我们写代码过程中一般都是while。
for
基本语法
格式:
for (表达式1; 表达式2; 表达式3) {
循环体
}
执行流程:首先执行表达式1,然后判断表达式2是否成立,如果成立,执行循环体,然后再执行表达式3,然后再次判断表达式2是否成立,直到表达式2不成立,循环退出。
打印表格
打印图形
for () {
for () {
}
}
规律:打印图形都是外层循环控制行数,内层循环控制每一行打印的内容。
双重循环打印表格
break和continue
break:用来结束循环。不管break下面还有多少语句,碰到break立即结束循环。
continue:用来结束本次循环,进入下一次循环。不管continue下面还有多少语句,碰到continue立即结束本次循环,进入下一次循环。
【注】当continue用到while中的时候要注意死循环。
变形格式
goto(了解)(禁止使用)