if语句:
if(表达式1){
代码段1
}elseif(表达式2){
代码段2
}elseif(表达式3){
代码段3
}else{
代码段4
}
需要注意,如果执行到了代码段3,说明表达式1和表达式2均不成立,并且表达式3成立,而不是仅仅是表达式3成立。
分支语句:
switch分支语句(执行结构清晰,效率高):
switch(表达式){
case 值1:
...
break;
case 值2:
...
break;
default:
...
}
需要注意的是,如果在某一分支满足条件,而该分支下没有break语句,将会继续执行下面的语句,而不是跳出判断。
可以没有default语句。
循环语句:
while语句:
while(){
语句;
}
为防止死循环,可以在php.ini文件中限制脚本最大执行时间:
max_execution_time = 30
也可以直接使用系统内置的限制函数:
$x = 1;
while($x){
echo $x++."<br/>";
}
set_time_limit(10);
foreach($arr as $k=>$v):
语句1;
语句2;
...
endforeach;
这种写法适用于while、for、foreach、switch。
小例子:
<style>
.bg_red{background-color:#f00; color:#fff;}
</style>
<?php
$mysqli = new mysqli('localhost', 'root', '','edu');
$i = 1;
while($i<=100){
$sql = "insert into user (uname,age) values('qizhi{$i}',$i)";
$mysqli->query($sql);
$i++;
}*/
$sql = "select * from user order by age";
$result = $mysqli->query($sql);
echo "<table>";
while($row = $result->fetch_assoc()){
if($row['age']>30){
echo "<tr class='bg_red'>";
}else{
echo "<tr>";
}
echo "<td>姓名:".$row['uname']."</td><td>\t年龄:".$row['age']."</td>";
echo "</tr>";
}
echo "</table>";
?>
结果:
姓名:qizhi1 年龄:1
姓名:qizhi2 年龄:2
……
姓名:qizhi98 年龄:98
姓名:qizhi99 年龄:99
姓名:qizhi100 年龄:100
九九乘法表:
$i = 1;
while($i<=9){
$j = 1;
while($j<=$i){
echo $j.'*'.$i.'='.$i*$j."\t";
$j++;
}
echo "<br/>";
$i++;
}
结果:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
稍微修改一下就是这样:
1*1=1 | ||||||||
1*2=2 | 2*2=4 | |||||||
1*3=3 | 2*3=6 | 3*3=9 | ||||||
1*4=4 | 2*4=8 | 3*4=12 | 4*4=16 | |||||
1*5=5 | 2*5=10 | 3*5=15 | 4*5=20 | 5*5=25 | ||||
1*6=6 | 2*6=12 | 3*6=18 | 4*6=24 | 5*6=30 | 6*6=36 | |||
1*7=7 | 2*7=14 | 3*7=21 | 4*7=28 | 5*7=35 | 6*7=42 | 7*7=49 | ||
1*8=8 | 2*8=16 | 3*8=24 | 4*8=32 | 5*8=40 | 6*8=48 | 7*8=56 | 8*8=64 | |
1*9=9 | 2*9=18 | 3*9=27 | 4*9=36 | 5*9=45 | 6*9=54 | 7*9=63 | 8*9=72 | 9*9=81 |
当然还有更多的东西可以尝试,不过由于时间原因,只能继续往下看了。
do...while
无论是否满足条件,都会先执行一次代码段。先执行后判断。
do{
代码段;
}while(条件);
for循环:
一般来说for循环的结构:
for(初始化;判断条件;递增){
代码段;
}
在一些特殊条件下,括号中的表达式可以省略(分号不能省略)。
break:
用于退出循环体,可以指定退出几层循环。
$i = $j = 1;
while($i++<10){
echo '$i='.$i;
while($j++<5){
echo ' $j='.$j;
if($j==3) break 2; //表示退出两层循环
}
echo "<br/>";
}
continue:
跳过本次循环。格式:
continue 2;
表示跳出两层循环到循环结尾,继续下次循环(如果循环还没有结束的话)。
die 和 exit:
无论在脚本的那个位置,当解析器解析到exit或die语句时,脚本都立即终止。die是exit的别名,它们指向同一个函数。
当传递给exit和die函数的值为0时,意味着提前终止脚本的执行,通常使用exit()。
echo "1111";
exit(0);
echo "2222"; //不会执行,因为在exit已退出
当程序出错时,可以给它传递一个字符串,它会原样输出在系统终端上,通常使用die()。
$fp=fopen("./readme.txt","r") or die("不能打开该文件");
也可以直接使用exit语句和die语句直接退出脚本:
die;
exit;
goto语句:
PHP中也提供了goto语句。