前言
上一篇文章 PHP学习笔记(一往无前)
欢迎来到PHP学习的第二篇文章(才贯二酉):不断学习积累,今日之我胜昨日之我。接下来的PHP文章会不断更新相关学习笔记,期待和各位共同学习、交流!
判断语句
当编写代码时,我们需要为不同的判断执行不同的动作。这时就可以在代码中使用条件语句来完成此任务。在 PHP 中,提供了下列条件语句:
if 语句 - 在条件成立时执行代码
if…else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码
if…else if…else 语句 - 在若干条件之一成立时执行一个代码块
switch 语句 - 在若干条件之一成立时执行一个代码块
if语句
//语法: if (条件) { 条件成立时要执行的代码; }
if 语句的单项条件:
如果if后面的表达式判断为true,就会执行if后的语句1;如果判断为false,就会绕过语句1,执行后面的语句。
案例
//当前分钟大于或等于30时,返回hello world。 $time=date("i"); if($time>=30){ echo "hello world"; }
if…else语句
//语法 if (条件) { 条件成立时执行的代码; } else { 条件不成立时执行的代码; }
案例
//如果分钟大于等于30就返回hello world;反之返回你好,世界 $time=date("i"); if($time>=30){ echo "hello world"; }else { echo "你好,世界"; }
案例
//if else 语句的嵌套 <form action="if3.php" method="post"> <h3>请选择今天的天气</h3> <select name="select" size="1"> <option selected value="sunny">sunny</option> <option value="rain">rain</option> <option value="cloudy">cloudy</option> <option value="foggy">foggy</option> <input type="submit" > </form>
$select=isset($_POST['select'])?$_POST['select']:"";//进行post传参 if ($select=="sunny"){ echo "可以出去玩!"; }else{ if($select=="rain"){ echo "外面下雨了"; }else if($select=="cloudy"){ echo "外面刮风了"; }else{ echo "外面起雾了"; } }
补充:三元运算符
三元运算符的功能与“if…else”流程语句一致,它在一行中书写,适当的运用三元运算符会使我们的代码更加精练、执行效率更高。
三元运算符语法:条件 ? 结果1 : 结果2 说明:问号前面的位置是判断的条件,如果满足条件时结果1,不满足时结果2。
$a = 10; $b = 7; $a % 2 == 0 ? print '$a 是偶数!<br>' : '';//输出 $a 是偶数! $b % 2 == 0 ? '' : print '$b 是奇数!';//输出 $b 是奇数! echo "<br>";
三元运算符可以扩展使用,当设置的条件成立或不成立,执行语句可以不止一句:
(expr1) ? (expr2).(expr3) : (expr4).(expr5);
$a = 10; $b = 6; $c = 12; $x = $a>$b ? ($a<$c ? $c-$a : $a-$c) : ($b<$c ? $c-$b : $b-$c); echo 'x的值是:'.$x; //输出 x的值是:2
if…else if…else语句
//语法 if (条件) { if 条件成立时执行的代码; } else if (条件) { else if 条件成立时执行的代码; } else { 条件不成立时执行的代码; }
案例
html页面:
<form action="scoredo.php" method="post" > <h3>成绩测试器</h3> <!-- 。placeholder可以用来描述输入字段预期值的简短的提示信息。 --> <input type="text" name="score1" placeholder="请输入成绩"> <button type="submit" value="查询">提交 </form>
php页面:
<?php $score1=isset($_POST['score1'])?$_POST['score1']:""; if(!is_numeric($score1)){ echo "请输入正确成绩类型"; }else{ if($score1<0||$score1>100){ echo "错误成绩"; }else if($score1>=90){ echo "您的成绩为优秀"; }else if($score1>=70){ echo "您的成绩为良好"; }else if($score1>=60){ echo "您的成绩为及格"; }else{ echo "您的成绩不合格"; } } ?>
效果:
注意事项:
当条件过多时,可以采用符合if形式;
如果条件比较单一,就可以采用elseif的符合方式;
当条件不一致时可以采用if else嵌套语法,如果条件过多就不建议使用嵌套语法,会影响代码的美观性,建议使用接下来的switch…break…语句
switch…break…语句
//语法 switch (n) { case term1: 如果 n=term1,此处代码将执行; break;//执行结束 case term2: 如果 n=term2,此处代码将执行; break; default: 如果 n 既不等于 term1 也不等于 term2,此处代码将执行; }
首先对一个简单的表达式 n(通常是变量)进行一次计算。将表达式的值与结构中每个 case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配(即没有 case 为真)时执行。
案例
//根据用户输入放入的数字来判断显示类型 <?php $i=2; switch($i){ case 1:echo "<input type='text' value='{$i}'>"; break; case 2:echo "<input type='button' value='{$i}'>"; break; case 3:echo "<input type='checkbox'>"; break; case 4:echo "<input type='redio'>"; break; default:echo "错误"; } //i=2,输出一个按钮 ?>
案例
根据用户指定的运算,计算结果
<!-- placeholder可以用来描述输入字段预期值的简短的提示信息 --> <form method="post" action="switchcomputer.php"> <input type="text" name="num1" placeholder="num1"> <select name="op" id=""> <option value="+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select> <input type="text" name="num2" placeholder="num2"> <input type="submit" value="计算"> </form>
$num1=$_POST['num1']; $op=isset($_POST['op'])?$_POST['op']:"";//判断op是否被设置,如果设置就是op,没有被设置就是空 $num2=$_POST['num2']; switch($op){ case "+":$result=$num1+$num2; echo $result; break; case "-":$result=$num1-$num2; echo $result; break; case "*":$result=$num1*$num2; echo $result; break; //除数不能是0,如果是0就返回错误 case "/":if($num2!=0) { $result=$num1/$num2; echo $result; break; }else{ echo "错误"; } }
效果:
简单总结:
if语句可以做所有的分支结构
switch语句用于处理条件比较多、单一,并且固定值匹配的分支结构
循环语句
PHP中的循环语句
1、for循环,语法“for(初始值;条件;增加值){循环体}”;
2、do while循环,语法“do{循环体}while(条件)”;
3、while循环,语法“while(条件){循环体}”;
4、foreach循环。
for循环
//语法 for(初始化计数初值;判断条件;增加计数值){ 循环体; } //当for循环语句中的循环条件没有时,会造成死循环,要避免这种情况出现
案例
for($i=1; $i<=10 ;$i++){ if($i==5)break;//表示打破,输出1 2 3 4 5 // if($i==5)continue;//表示继续,输出1,2,3,4,5,6,7,8,9,10 echo $i."<br>"; }
案例
//打印一个等腰三角形 $n=4; for($i=0;$i<$n;$i++){ for($j=1;$j<($n-$i);$j++){ echo " ";//第一行是三个空格一个 * } for($k=0;$k<(2*$i+1);$k++){ echo "*"; } echo "<br>"; } //输出: * *** ***** *******
案例
// 九九乘法表 echo "<table border=1px>"; for($i=1; $i<=9;$i++){ echo "<tr>"; for($j=1;$j<=$i;$j++){ echo "<td>"."{$i}".'*'."{$j}".'='.$i*$j."</td>"; } for($k=0;$k<=(9-$j);$k++){ echo "<td></td>"; } echo "<tr>"; } echo "</table>";
效果:
while循环
//语法 while(判断条件){ 循环体; } //while循环先进行循环条件的判断,后进行循环;如果条件不满足,就跳出循环
案例
当条件已知(通常是有规律的数据),我们可以采用for循环;
如果条件不固定,需要采用条件判定,此时我们可以采用while循环,while循环是比较灵活的循环语句
do while循环
//语法 do{ 循环体; }while(判断条件); //do while 循环先进入循环,再进行条件的饿判断;因此至少会进行一次循环
案例
//打印出1-10的奇数和偶数 $i=1; do{ if($i % 2 ==0){ echo $i."是偶数 "." "; }else{ echo $i."是奇数 "." "; } //i进行自加 $i++; }while($i<=10);
foreach循环
//语法 foreach($array as $value){ 执行代码; } 或者是; foreach($array as $key => $value ){ 执行代码; } //$key 数组键名 $value 数组键值 //foreach循环属于数组的遍历循环,每进行一次循环,当前的值就会赋给变量$value,并且数组指针是逐一移动的,直到最后一个数组元素
案例
//一维数组的遍历 $stu1=array( '1001'=> '小明', '1002'=> '小红', '1003'=> '晓东' ); foreach($stu1 as $key=>$value){ echo $key.$value."<br>"; } //输出 1001小明 1002小红 1003晓东
案例
//二维数组的遍历 $stu2=array( "人事部"=>array('a','b','c'), "研发部"=>array('d','e','f'), ); //打印出人事部有abc,研发部有def; foreach($stu2 as $key=>$value){ echo $key.":"; foreach($value as $keyin=>$valuein){ echo $valuein." "; } echo "<br>"; } //输出 人事部:a b c 研发部:d e f
案例
//将一个二维数组遍历到表格 $arr1=array( array('name'=>'lili','sex'=>'famale','age'=>12), array('name'=>'tom','sex'=>'male','age'=>15), array('name'=>'join','sex'=>'famale','age'=>10) ); echo" <table border='1'>"; echo "<tr><th>id</th><th>name</th><th>sex</th><th>age</th></tr>"; foreach($arr1 as $key=>$value){ echo "<tr>"; echo "<td>$key</td>"; foreach($value as $keyin=>$valuein){ echo "<td>$valuein</td>"; } echo "</tr>"; } echo "</table>"; echo "<br>";
以上就是对php中的判断语句和流程语句的简单总结了,接下来的文章还会继续更新学习笔记,期待和大家的交流!
如有不足,感谢指出!