PHP中流程控制及缓存控制
一、if语句
if(条件1){
语句一
}elseif(条件2){
语句二
}
...
}else{
语句n
}
二、switch语句
switch(表达式){
case 值 1:
语句块1;
break;
case 值 2:
语句块2;
break;
.......
default:
语句块n
}
三、while语句
while(表达式){
语句....
}
四、do...while语句
do{
语句...
}while(表达式);
五、for语句
for(表达式a;表达式b;表达式c){
语句...
}
表达式a:初始化话的语句,如$i=0,多个表达式中间用逗号(,)隔开
表达式b:用来判断true或者false的表达式,多个表达式中间用逗号(,)隔开
表达式c:对初始化的变量进行自增或自减的运算的语句,多个表达式中间用逗号(,)隔开
六、特殊的流程控制语句
1.break语句
用于switch语句,for,while,do...while,foreach,用于中断这些语句
后面可以接上一个数字来表示跳出几层循环,默认不加就是跳出当前循环语句
2.continue语句
只能用在循环语句,跳出本次循环,并不是结束整个循环语句
3.exit([$msg])语句(等价于die())
结束当前整个程序的执行
如果$msg是一个字符串,在退出之前会打印该值
如果$msg是一个int,会作为退出状态码,且不会被打印
退出状态码应该在范围0至254,不应使用被PHP保留的退出状态码255,状态码0用于成功中止程序
4.sleep($sec) 和 usleep()延时执行:
脚本延时$sec秒执行。usleep()和sleep()功能一样,只不过单位是微秒
七、输出缓存:
ob_start():打开输出控制缓冲,当输出缓冲激活后,脚本将不会输出内容(除http标头外),相反需要输出的内容被存储在内部缓冲区中。
flush():刷新输出缓冲,刷新PHP程序的缓冲,而不论PHP执行在何种情况下。该函数将当前为止程序的所有输出发送到用户的浏览器。flush()函数不会对服务器或客户端浏览器的缓存模式产生影响。因此,必须同时使用ob_flush()和flush()函数来刷新输出缓冲。
ob_flush():冲刷出(送出)输出缓冲区中的内容,缓冲区内容将被丢弃。此函数不会销毁输出缓冲区
ob_end_flush():冲刷出(送出)输出缓冲区内容并关闭缓冲(销毁输出缓冲区)
ob_get_flush():冲刷出(送出)输出缓冲区内容,以字符串形式返回内容,并关闭输出缓冲区(销毁输出缓冲区)。
ob_get_contents():回获取并返回输出缓冲区的内容,只是得到输出缓冲区的内容,但不清除它。
ob_get_length():返回输出缓冲区内容的长度
ob_implicit_flush($flag = true):打开/关闭绝对刷送。绝对(隐式)刷送将导致在每次输出调用后有一次刷送操作,以便不再需要对 flush() 的显式调用。
ob_clean():清空(擦掉)输出缓冲区,用来丢弃输出缓冲区中的内容,此函数不会销毁输出缓冲区
ob_end_clean():清空(擦除)缓冲区并关闭输出缓冲(销毁输出缓冲区)
ob_get_clean():得到当前缓冲区的内容以字符串形式返回并删除当前输出缓(销毁输出缓冲区)。
ob_get_clean()实质上是一起执行了ob_get_contents()和ob_end_clean()