Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:
- 对象课件,将提及的全部运算符上机做一遍,并将你认为重要的发到博客中;
- 实例演示分支与循环结构 ,并熟练写出他们的替代语法(不得抄课堂代码),自己想。
- 文件包含的本质是什么?include,require的区别是什么,用在什么地方?
<?php
// 算术运算符
// +,-,* /
// %: 取模, 也叫取余,余数一定是整数
printf('7+5=%d <br>', (7+5));
printf('7-5=%d <br>', (7-5));
printf('7*5=%d<br>', (7*5));
printf('8/4= %d <br>', (8 / 4));
printf('7/5= %d<br>', (7 % 5));
echo '<hr>';
// 赋值运算符
$a = 9;
$b = 3;
$a = $a + $b;
$a += $b;
$a = $a - $b;
$a -= $b;
echo '<hr>';
$a =99;
// ++$a: 先执行$a = $a + 1后, 再用$a
printf('++$a = %d, $a = %d<br>', ++$a, $a);
$a = 99;
// $a++: 先用$a, 再执行$a = $a + 1
printf('$a++ = %d, $a = %d<br>', $a++, $a);
$a =99;
// --$a: 先执行$a = $a -1后, 再用$a
printf('--$a = %d, $a = %d<br>', --$a, $a);
$a = 99;
// $a--: 先用$a, 再执行$a = $a - 1
printf('$a-- = %d, $a = %d<br>', $a--, $a);
echo '<hr>';
//字符串运算符
// .= .=串接赋值
// baidu.com
$c= 'baidu';
// $a= $a . '.com';
$c .= '.com';
echo $c;
$list = '<ul>';
$list .= '<li>baidu1</li>';
$list .= '<li>baidu2</li>';
$list .= '<li>baidu3</li>';
$list .= '<li>baidu4</li>';
$list .= '<li>baidu5</li>';
$list .= '<li>baidu6</li>';
$list .= '</ul>';
echo $list;
echo '<hr>';
//比较运算符
// 比较,返回的是boolean
var_dump(100 > 80);
echo '<hr>';
// "==": 只要求值相等就是true,如果二边类型不同则自动转换
var_export(100 == '100');
var_export(100 == (int)'100');
var_export((string)100 == '100');
echo '<br>';
// "===": 要求值,类型全相同才返回true
var_export(100 === '100');
var_export(100 === (int)'100');
echo '<hr>';
//数组运算符 多用于条件判断,用变量给出一个值,然后给出几个条件进行判断
// 判断一下2016年是不是闰年
$year = 2016;
// echo $year;
// 闰年: 能被4整除,
if ($year % 4 === 0 && $year % 100 !== 0) {
printf('%d年是闰年<br>', $year);
} else {
printf('%d年不是闰年<br>', $year);
}
echo '<br>';
$c = 70;
echo $c >= 60? '优秀' : '不及格';
echo '<br>';
$username = 'admin';
if (isset($username) && $username === 'admin') {
echo '欢迎管理员: ' . $username. '<br>';
} else {
echo '请登录';
}
if (!isset($email)) {
echo '没有输入邮箱';
}
echo '<hr>';
// php7, 太空船
$a = 15;
$b = 25;
echo $a <=> $b;
echo '<hr>';
// 检测页码
$page = $_GET['p'] ??6;
echo 'p = ' . $page, '<hr>';
?>
<input type="text" value="<?=$_GET['p'] ?? 3?>">
图示:
<?php
// 流程控制: 分支
// 1. 单分支
$a = 60;
if ($a >= 60) {
echo '你本次考试合格准予结业!<br>';
}
echo '<hr>';
// 2. 双分支
$a = 59;
if ($a >=60) :
echo '你本次考试合格准予结业!<br>';
else :
echo '本次考试没有通过,期待你下次补考通过!<br>
endif;
// 简化: 三元
$a = 59;
echo $a >= 60 ? '你本次考试合格准予结业!<br>' : '本本次考试没有通过,期待你下次补考通过!'
echo '<hr>';
// 3. 多分支
$a = 110;
if ($a >= 60 && $a < 100) {
echo '你本次考试合格准予结业!<br>';
} elseif ($a >= 110) {
echo '奖励100元现金!<br>';
}
// 默认分支
else {
echo '罚款500元<br>';
}
echo '<hr>';
// 4. switch, 多分支的简化方案
$a = 30;
switch ($a) {
case $a >= 60 && $a < 100:
echo '你本次考试合格准予结业!<br>';
break;
case $a >= 110:
echo '奖励100元现金!<br>';
break;
default:
echo '罚款500元<br>';
}
?>
图示:
三、while循环|do while循环|for循环|foreach循环
3.1while循环
<?php
$a = [1,2,3,4,5,6,7];
// 1.while循环
// 1.入口型 while(...) {}
$i =0;
while ($i < count($a)) {
echo $a[$i],'<br>';
$i++;
}
//简化版:去掉大括号
while ($i < count($a)):
echo $a[$i],'<br>';
$i++;
endwhile;
图示:
3.2 do while循环
<?php
//出口判断型 do…while :如果不满足条件至少会循环一次
$a = [1,2,3,4,5,6,7];
$i =3;
do{
echo $a[$i];
$i++;
}while ($i> count($a));
图示:
3.3for循环
<?php
//for循环语法
//$i = 1 循环条件初始值
//$i <= 7 判断循环条件
//i++ 更新循环条件
$a = [1,2,3,4,5,6,7];
for($i =0;$i<count($a);$i++){
echo $a[$i];
}
//简化版:去掉大括号
for($i =0;$i<count($a);$i++):
echo $a[$i];
endfor;
3.4foreach循环
<?php
//foreach循环两种语法
//1.foreach (iterable_expression as $value)statement
//2.foreach (iterable_expression as $key => $value)statement
$a = [1,2,3,4,5,6,7];
foreach ($a as $i => $a) {
if ($i === 2) continue;
echo $a. '<br>';
}
图示:
foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息
相关参考资料:https://www.php.net/manual/zh/control-structures.foreach.php
1.文件包含本质是模块化编程,引入时会自动插入一个结束标记,进入到html模式,被插入的脚本可以访问当前作用域中的所有成员。
2.include/require区别是,include引入时报错仍会执行后面的代码,require引入时报错就不会执行后面的代码。