运算符和流程控制知识点
1.运算符
<?php
//自增自减运算符只能作用于变量上
//var_dump(10++);
$num = 0;
var_dump(++$num);//1
echo '<br>';
//在单独的表达式上自增自减运算符放在前后没有区别
//在赋值运算上,自增自减运算符在前面先自增自减,后赋值;自增自减运算符在后面先赋值,后自增自减
//<=>太空船运算符
//左值大于右值返回1
//左值小于右值返回-1
//左值等于右值返回0
var_dump(10<=>5);
echo '<br>';
var_dump(5<=>10);
echo '<br>';
var_dump(10<=>10);
echo '<br>';
//??运算符 相当于对isset()的三元运算符简化
var_dump(isset($password)?$password:'root');
echo '<br>';
var_dump($password??'root');
echo '<br>';
//@错误抑制运算符语法错误不能被屏蔽掉
//幂运算符
var_dump(3**3);//27
echo '<br>';
var_dump(pow(3, 3));//27
2.分支语句
<?php
//分支结构
//获取当前是星期几,1-7
$week = date('N');
/*if语句*/
if ($week != 6 && $week != 7) {
echo '工作愉快!';
}
echo '<br>';
//如果if语句中只有一条语句可以省略花括号
if ($week != 6 && $week != 7) echo '工作愉快!';
echo '<br>';
//和HTML混编时可以简化花括号,模板语法
if ($week != 6 && $week != 7) :
echo '工作愉快!';
endif;
echo '<hr>';
/*if...else语句*/
if ($week == 6 || $week == 7) {
echo '好好休息!';
} else {
echo '工作愉快!';
}
echo '<br>';
//和HTML混编时可以简化括号,模板语法
if ($week == 6 || $week == 7) :
echo '好好休息!';
else:
echo '工作愉快!';
endif;
echo '<hr>';
//if...elseif...else语句
$score = 59;
if ($score >= 90) {
echo '优秀';
} elseif ($score >= 60 && $score < 90) {
echo '及格';
} else {
echo '不及格';
}
echo '<br>';
//和HTML混编时可以简化花括号,模板语法
if ($score >= 90) :
echo '优秀';
elseif ($score >= 60 && $score < 90):
echo '及格';
else:
echo '不及格';
endif;
echo '<br>';
//switch简化多分支
switch ($score) {
case $score >= 90:
echo '优秀';
break;
case $score >= 60 && $score < 90:
echo '及格';
break;
default:
echo '不及格';
break;
}
echo '<br>';
//和HTML混编时可以简化花括号,模板语法
switch ($score):
case $score >= 90:
echo '优秀';
break;
case $score >= 60 && $score < 90:
echo '及格';
break;
default:
echo '不及格';
break;
endswitch;
echo '<br>';
//switch应用:单值判断
switch ($week) {
case 1:
echo '今天是星期一';
break;
case 2:
echo '今天是星期二';
break;
case 3:
echo '今天是星期三';
break;
case 4:
echo '今天是星期四';
break;
case 5:
echo '今天是星期五';
break;
case 6:
echo '今天是星期六';
break;
case 7:
echo '今天是星期日';
break;
}
3.循环语句
<?php
//循环语句
//while 入口型循环,首先判断是否满足条件
//输出5次"hello world!"
$n = 0;
while ($n < 5) {
echo 'hello world!<br>';
$n++;
}
echo '<br>';
//模板写法
$n = 0;
while ($n < 5) :
echo 'hello world!<br>';
$n++;
endwhile;
echo '<hr>';
//do...while 出口型循环,即使不满足条件也会执行一次
do {
echo 'hello world!';
$n++;
} while ($n < 0);
echo '<hr>';
//for循环,也叫计次循环
//循环输出5次"hello world!"
for ($i = 1; $i <= 5; $i++) {
echo 'hello wrold!<br>';
}
echo '<br>';
//模板写法
for ($i = 1; $i <= 5; $i++) :
echo 'hello wrold!<br>';
endfor;
echo '<br>';
//continue 跳出当前循环,进行下一次循环
//循环输出5次"hello world!",因为跳过一次循环所以为4次
for ($i = 5; $i >= 1; $i--) {
if ($i == 3) {
continue;
}
echo 'hello world!<br>';//打印了4次"hello world!"
}
echo '<br>';
//break 终止循环
//循环输出5次"hello world!",因为打印到第三次循环,终止了,所以打印了2次"hello world!"
for ($i = 5; $i >= 1; $i--) {
if ($i == 3) {
break;
}
echo 'hello world!<br>';//打印了2次"hello world!"
}
echo '<hr>';
//for循环打印乘法口诀表
$table = '<table border="1" cellpadding="0" cellspacing="0">';
$table .= '<caption>乘法口诀表</caption>';
for ($i = 1; $i <= 9; $i++) {
$table .= '<tr>';
for ($j = 1; $j <= $i; $j++) {
$table .= '<td>';
$table .= $i . '*' . $j . '=' . $i * $j;
$table .= '</td>';
}
$table .= '</tr>';
}
$table .= '</table>';
echo $table;
4.效果图
5.总结
- 运算符
++
,--
,<=>
等是新手比较容易搞不清楚的,这里重点提及 - 流程控制决定了代码的执行顺序和循环次数,是开发中应用较多的
- 结合
HTML
的知识写了个乘法口诀表的案例,来加强循环语句的学习