流程控制语句
选择结构语句
单分支判断
<?php
if(条件){
}
?>
双分支判断
<?php
if(条件){
//代码块1
}else{
//代码块2
}
?>
多分支判断
<?php
if(条件){
//代码块1
}elseif(条件){
//注意:elseif之间没有空格
//代码块2
}else{
//代码块3
}
?>
多路选择
<?php
switch(表达式){
case 常量:
//代码块
break;
case 常量:
//代码块
break;
default:
//代码块
}
?>
案例:判断闰年
- 案例:判断闰年
$_POST
是一个变量,用来保存post提交的数据
action=''
表示将数据提到本页面
is_numeric()
判断变量是否是数字或字符串数字
is_integer()
判断变量是否是整型
if else
后面如果只是一句代码,大括号可以省略
input
中,name value
为数据传输的键值对
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>判断是否为闰年</title>
</head>
<body>
<?php
if(!empty($_POST)){
// var_dump($_POST);
$year= $_POST['year'];
if($year== ''){
echo '您没有输入年份';
}else{
if(is_numeric($year)){
$year+= 0;
if(is_integer($year) && $year> 1){
if($year% 4== 0&& $year% 100!= 0|| $year%400== 0) echo "{$year}是闰年";
else echo "{$year}是平年";
}else{
echo '您输入的年份有误';
}
}else{
echo '您输入的不是数字';
}
}
}
?>
<form method="post" action="">
请输入年份: <input type="text" name="year"> <br />
<input type="submit" name="button" value="判断闰年">
</form>
</body>
</html>
案例:成绩评级
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>成绩评级</title>
</head>
<body>
<?php
if(isset($_POST)){
// var_dump($_POST);
$ch= $_POST['ch'];
$math= $_POST['math'];
if($ch== ''|| !is_numeric($ch)|| $ch<= 0|| $ch>= 100){
echo "请输入有效的语文成绩<br>";
}elseif($math== ''|| !is_numeric($math)|| $math<= 0|| $math>= 100){
echo "请输入有效的数学成绩<br>";
}else{
$avg= ($ch+ $math)/ 2;
echo "语文成绩:{$ch}<br>";
echo "数学成绩:{$math}<br>";
echo "平均成绩:{$avg}<br>";
switch($avg){
case $avg>= 90:
echo "成绩评定:A";
break;
case $avg>= 80:
echo "成绩评定:B";
break;
case $avg>= 70:
echo "成绩评定:C";
break;
case $avg>= 60:
echo "成绩评定:D";
break;
default:
echo "成绩评定:E";
}
}
}
?>
<form method="post" action="">
语文: <input type="text" name="ch"> <br />
数学: <input type="text" name="math"> <br />
<input type="submit" name="button" value="成绩评级">
</form>
</body>
</html>
案例:更改颜色
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>成绩评级</title>
</head>
<body>
<?php
if(isset($_POST['button'])) {
switch($_POST['color']){
case '1':
$color='#FF0000'; //红色
break;
case '2':
$color='#009900'; // 绿色
break;
case '3':
$color='#0000FF'; //蓝色
break;
default:
$color='#000000'; //黑色
}
echo <<<str
<script type="text/javascript">
window.onload=function(){
document.getElementById('shi').style.color='$color';
}
</script>
str;
}
?>
<div id="shi">
锄禾日当午, <br />
汗滴禾下土。 <br />
谁知盘中餐, <br />
粒粒皆辛苦。 <br />
</div>
<form method="post" action="">
<select name="color">
<option value="0">请选择颜色</option>
<option value="1">红色</option>
<option value="2">绿色</option>
<option value="3">蓝色</option>
</select>
<input type="submit" name="button" value="更改颜色">
</form>
</body>
</html>
循环结构语句
for循环
for(初始值;条件;增量){
//循环体
}
while循环
while(条件){
// 循环体
}
do-while循环
do{
// 循环体
}while(条件)
多语句表达式
- 多语句表达式
- 初始值、增量可以写多个表达式
- 条件一般只写一个,如果条件写多个,只是最后一个条件起作用
<?php
for($i=1,$j=9;$i<=$j;$i++,$j--){
echo "10可以分成:{$i}和{$j}<br>";
}
?>
双重循环
<?php
for($i=1; $i<=9; $i++){
for($j=1; $j<=$i; $j++){
$val= $i* $j;
echo "{$i}*{$j}={$val} ";
}
echo "<br>";
}
?>
foreach
foreach(数组 as 值){
// 循环体
}
foreach(数组 as 键=>值){
// 循环体
}
<?php
$stu= ['Sunny', 'Tomy', 'Jerry'];
foreach($stu as $v){
echo "{$v}<br>";
}
foreach($stu as $k=>$v){
echo "{$k}-{$v}<br>";
}
?>
跳转语句
中断循环 break
<?php
for($i=1; $i<=10; $i++) {
if($i==5)
break; //中断循环
echo "{$i}<br>";
}
?>
中断当前循环,进入下一个循环 continue
<?php
for($i=1; $i<=10; $i++) {
if($i==5)
continue; //跳出5,进入6循环
echo "{$i}<br>";
}
?>
中断多重循环
- 中断多重循环
- break和continue默认中断、跳出1重循环
- 如果需要中断、跳出多重循环,在后面加一个数字
<?php
for($i=1; $i<=10; $i++) {
for($j=1;$j<=$i;$j++){
echo $j.' ';
if($j==5){
break 2; //中断2重循环
}
}
echo '<br>';
}
<?php
for($i=1; $i<=10; $i++) {
switch($i){
case 5:
break 2;
}
echo $i,'<br>';
}
?>
替代语法
- 替代语法
- php中除了do-while以外,其他的语法结构都有替代语法
- 规则:左大括号变冒号,右大括号变endXXX
if替代语法
if():
elseif():
else:
endif;
switch替代语法
switch():
endswitch;
for替代语法
for():
endfor;
while替代语法
while():
endwhile;
foreach替代语法
foreach():
endforeach;
<?php
for($i=1;$i<=10;$i++):
if($i%2==0):
?>
<?php echo $i;?>:数据输出<br>
<?php
endif;
endfor;
?>
证明:else if之间如果有空格是嵌套if语句
<?php
$score=80;
if($score>=90):
echo 'A';
elseif($score>=80): //elseif之间没有空格,如果有空格是嵌套if语句
echo 'B';
else:
echo 'C';
endif;
?>
<?php
$score=80;
if($score>=90):
echo 'A';
else:
if($score>=80):
echo 'B';
else:
echo 'C';
endif;
endif;
?>