批改状态:合格
老师批语:完成的很好!有码有图。
<?php//比较运算符返回布尔值var_dump(10 > 20);// “==”,“===”//“==”:值比较,当操作符两边的操作类型不一致,会触发类型自动转换机制var_dump(100 == '100');//"===":除了值相等,类型也必须一致echo '<hr>';var_dump(100 === '100');echo '<hr>';//太空船运算符var_dump(10 <=> 20);//返回-1var_dump(10 <=> 5);//返回1var_dump(10 <=> 10);//返回0//大于返回1,小于返回-1,相等返回0echo '<hr>';//逻辑运算符//&&: 两边表达式除非全部为true,否则返回falsevar_dump((10>20)&&(5>8));echo '<hr>';// ||:两边表达式一个为true,全部为truevar_dump((10<20)||(5>8));echo '<hr>';//三元运算符//三元:三个表达式//二元:二个表达式$price = 1000;echo $price > 1500 ? '太贵了' : '太便宜了';echo '<hr>';// ??:null合并运算符echo $password ?? 'root';

<?php//计算机默认是顺序执行//分支结构//1.单分支$amount = 5500;$payment = $amount;/* if ($amount >= 4000){$payment = $amount * 0.9;} */if ($amount >= 5000) $payment = $amount*0.9;//当流程控制语句中只有一行代码的时候,可以省略大括号echo '(省略大括号)实际支付:',$payment,'元<hr>';//模板语法:if ($amount >= 4000):$payment = $amount * 0.9;endif;/*模板语法:就是去掉流程控制中的大括号将起始大括号用冒号代替,将结束大括号用特殊关键字代替*/echo '(模板语法)实际支付:',$payment,'元<hr>';//2.双分支$amount = 4500;if ($amount >=5000){$payment = $amount *0.9;}else{$payment = $amount;}echo '(双分支)实际支付:',$payment,'元<hr>';//模板语法:$amount = 10000;if ($amount >=5000):$payment = $amount *0.9;else:$payment = $amount;endif;echo '(双分支模板语法)实际支付:',$payment,'元<hr>';//3.多分支if ($amount > 5000 && $amount < 10000){$payment = $amount *0.9;}elseif($amount >= 10000 && $amount < 20000){$payment = $amount *0.7;}elseif($amount >= 20000){$payment = $amount *0.5;}else{$payment = $amount;}echo '(多分支)实际支付:',$payment,'元<hr>';//模板语法:if ($amount > 5000 && $amount < 10000):$payment = $amount *0.9;elseif($amount >= 10000 && $amount < 20000):$payment = $amount *0.7;elseif($amount >= 20000):$payment = $amount *0.5;else:$payment = $amount;endif;echo '(多分支模板语法)实际支付:',$payment,'元<hr>';// 4.switch:用来简化多分支//switch:通常用在单值判断中$amount = 20000;switch(true){case $amount > 5000 && $amount < 10000:$payment = $amount *0.9;break;case $amount >= 10000 && $amount < 20000:$payment = $amount *0.7;break;case $amount >= 20000:$payment = $amount *0.5;break;//默认分支default:$payment = $amount;}echo '(switch)实际支付:',$payment,'元<hr>';//模板语法:$amount = 15000;switch(true):case $amount > 5000 && $amount < 10000:$payment = $amount *0.9;break;case $amount >= 10000 && $amount < 20000:$payment = $amount *0.7;break;case $amount >= 20000:$payment = $amount *0.5;break;//默认分支default:$payment = $amount;endswitch;echo '(switch模板语法)实际支付:',$payment,'元<hr>';

<?php$cities = ['合肥','南京','杭州','苏州','上海'];//判断型循环:入口判断型 while(条件){...}//判断当前数组元素的值//current() 函数返回当前被内部指针指向的数组单元的值,并不移动指针。//如果内部指针指向超出了单元列表的末端,current() 返回 FALSE。while ($city = current($cities)){echo $city,'<br>';next($cities);//指针下移}echo '<hr>';//指针复位reset ($cities);echo '指针复位<br>';while ($city = current($cities)){echo $city,'<br>';next($cities);//指针下移}//模板语法:echo '<hr>';echo '模板语法<br>';reset ($cities);while ($city = current($cities)):echo $city,'<br>';next($cities);//指针下移endwhile;reset ($cities);echo '<hr>';echo 'do{}while();没有模板语法';//出口判断型: do{...} while(条件)do {echo $city,'<br>';next($cities);//指针下移}while($city = current($cities));

<?php$cities = ['山西','河南','山东','河北','湖南'];//遍历数组echo '<hr>for遍历数组<br>';//echo count($cities);//统计数组元素个数//$i:数组元素的索引,默认从0开始for($i = 0;$i < count($cities);$i++){echo $cities[$i],'<br>';}//$i:数组元素的索引,默认从0开始//模板语法echo '<hr>for模板语法<br>';for($i = 0;$i < count($cities);$i++):echo $cities[$i],'<br>';endfor;//关键字输出拦截breakecho '<hr>break拦截输出<br>';for($i = 0;$i < count($cities);$i++):if($i > 2) break;echo $cities[$i],'<br>';endfor;//continue有选择的输出echo '<hr>continue有选择的输出<br>';for($i = 0;$i < count($cities);$i++):if($i === 3)continue;echo $cities[$i],'<br>';endfor;

<?php//数据表查询结果通常是一个二维数组,用二维数组来模拟//php可以写在HTML中的任何地方$users = [['id'=>1,'name'=>'张三','age'=>20],['id'=>2,'name'=>'王红','age'=>22],['id'=>3,'name'=>'李丽','age'=>21],['id'=>4,'name'=>'刘帅','age'=>22],];?><!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head><body><?php$table = '<table border="1" cellspacing="0" cellpadding="0" width="600px">';for ($i =0; $i < count($users);$i++){$table .= '<tr>';$table .= '<td>'.$users[$i]['id'].'</td>';$table .= '<td>'.$users[$i]['name'].'</td>';$table .= '<td>'.$users[$i]['age'].'</td>';$table .= '</tr>';}$table .= '</table>';echo $table.'<hr>';?><table cellspacing="0" cellpadding="0" width="600px"><?php for ($i =0; $i < count($users);$i++): ?><tr><td><?php $users[$i]['id'] ?></td><td><?php $users[$i]['name'] ?></td><td><?php $users[$i]['age'] ?></td></tr><?php endfor; echo $table;?></table></body></html>

| 例子 | 名称 | 结果 |
|---|---|---|
| -$a | 取反 | $a 的负值 |
| $a + $b | 加法 | $a 和 $b 的和 |
| $a - $b | 减法 | $a 和 $b 的差 |
| $a * $b | 乘法 | $a 和 $b 的积 |
| $a / $b | 除法 | $a 除以 $b 的商 |
| $a % $b | 取模 | $a 除以 $b 的余数 |
赋值运算符:
基本的赋值运算符是”=”。一开始可能会以为它是”等于”,其实不是的。它实际上意味着把右边表达式的值赋给左边的运算数。
| 例子 | 名称 | 结果 |
|---|---|---|
| $a & $b | And(按位与) | 将把 $a 和 $b 中都为 1 的位设为 1。 |
| $a | $b | Or(按位或) | 将把 $a 和 $b 中任何一个为 1 的位设为 1。 |
| $a ^ $b | Xor(按位异或) | 将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1。 |
| ~ $a | Not(按位取反) | 将 $a 中为 0 的位设为 1,反之亦然。 |
| 例子 | 名称 | 结果 |
|---|---|---|
| $a == $b | 等于 | TRUE,如果类型转换后 $a 等于 $b。 |
| $a === $b | 全等 | TRUE,如果 $a 等于 $b,并且它们的类型也相同。 |
| $a != $b | 不等 | TRUE,如果类型转换后 $a 不等于 $b。 |
| $a <> $b | 不等 | TRUE,如果类型转换后 $a 不等于 $b。 |
| $a !== $b | 不全等 | TRUE,如果 $a 不等于 $b,或者它们的类型不同。 |
| $a < $b | 小与 | TRUE,如果 $a 严格小于 $b。 |
| $a > $b | 大于 | TRUE,如果 $a 严格大于 $b。 |
| $a <= $b | 小于等于 | TRUE,如果 $a 小于或者等于 $b。 |
| $a >= $b | 大于等于 | TRUE,如果 $a 大于或者等于 $b。 |
| $a <=> $b | 太空船运算符(组合比较符) | 当$a小于、等于、大于$b时分别返回一个小于、等于、大于0的integer 值。 PHP7开始提供. |
| $a ?? $b ?? $c | NULL 合并操作符 | 从左往右第一个存在且不为 NULL 的操作数。如果都没有定义且不为 NULL,则返回 NULL。 |
| 例子 | 名称 | 效果 |
|---|---|---|
| ++$a | 前加 | $a 的值加一,然后返回 $a。 |
| $a++ | 后加 | 返回 $a,然后将 $a 的值加一。 |
| —$a | 前减 | $a 的值减一, 然后返回 $a。 |
| $a— | 后减 | 返回 $a,然后将 $a 的值减一。 |
| 例子 | 名称 | 效果 |
|---|---|---|
| $a and $b | And(逻辑与) | TRUE,如果 $a 和 $b 都为 TRUE。 |
| $a or $b | Or(逻辑或) | TRUE,如果 $a 或 $b 任一为 TRUE。 |
| $a xor $b | Xor(逻辑异或) | TRUE,如果 $a 或 $b 任一为 TRUE,但不同时是。 |
| ! $a | Not(逻辑非) | TRUE,如果 $a 不为 TRUE。 |
| $a && $b | And(逻辑与) | TRUE,如果 $a 和 $b 都为 TRUE。 |
| $a || $b | Or(逻辑或) | TRUE,如果 $a 或 $b 任一为 TRUE。 |
if(条件){输出结果}单分支可以省略大括号if(条件)输出结果;模板语法:if(条件):输出结果; endif;
if(条件){输出结果}else{输出结果}模板语法:if(条件):输出结果else:输出结果endif;
if(条件){输出结果}elseif{输出结果}elseif{输出结果}else{输出结果}模板语法:if(条件):输出结果elseif:输出结果elseif:输出结果else:输出结果endif;
switch(true){case (条件):输出结果;break;case (条件):输出结果;break;case (条件):输出结果;break;default:输出结果;}模板语法:switch(true):case (条件):输出结果;break;case (条件):输出结果;break;case (条件):输出结果;break;default:输出结果;endswitch;
变量 = ['a','n','b'];while(变量 = current(变量)){//current() 函数返回当前被内部指针指向的数组单元的值,并不移动指针条件为真时执行结果next(变量);//指针下移}模板语法:while(变量 = current(变量))://current() 函数返回当前被内部指针指向的数组单元的值,并不移动指针条件为真时执行结果next(变量);//指针下移endwhile;
变量 = ['a','n','b'];do{//直接输出结果next(变量);//指针下移}while(变量 = current(变量));do while没有模板语法
$array=['a','b','c'];for($i = 0;$i < count($array);$i++){echo '输出结果$array[$i]';}模板语法:$array=['a','b','c'];for($i = 0;$i < count($array);$i++):echo '输出结果$array[$i]';endfor;
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号