PHP基础之流程控制语句

流程控制语句

选择结构语句

单分支判断

<?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}&nbsp;";
    }
    echo "<br>";
  }
?>

foreach

  • foreach
    • 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.'&nbsp;';
		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;
?>
原文地址:https://www.cnblogs.com/SharkJiao/p/13961995.html