批改状态:合格
老师批语:总结的不错, 希望你经常回看一下你的博客
| 序号 | 运算符 | 示例 | 描述 |
|---|---|---|---|
| 1 | = |
$a = 10 |
将表达式的值赋给变量 |
| 2 | += |
$a += 10 |
$a = $a + 10; |
| 3 | -= |
$a -= 10 |
$a = $a - 10; |
| 4 | *= |
$a *= 10 |
$a = $a * 10; |
| 5 | /= |
$a /= 10 |
$a = $a / 10; |
| 6 | %= |
$a %= 10 |
$a = $a % 10; |
| 7 | .= |
$a .= 'a' |
$a = $a . 'a'; |
| 序号 | 运算符 | 示例 | 描述 |
|---|---|---|---|
| 1 | > |
$a > $b |
大于 |
| 2 | >= |
$a >= $b |
大于或等于 |
| 3 | < |
$a < $b |
小于 |
| 4 | <= |
$a <= $b |
小于或等于 |
| 5 | == |
$a == $b |
等于 (值相等即可) |
| 6 | === |
$a == $b |
全等于(二边值与类型全等) |
| 7 | != |
$a != $b |
不相等 |
| 8 | !== |
$a !== $b |
不全等 |
| 9 | <=> |
$a <=> $b |
太空船php7+ |
if/while/for...)<=>: 也叫组合比较符, 例如$a <=> $b, 有三种返回结果
==: 只判断值是否相等, 不判断类型
当 == 二边的类型不同时,会发生类型的自动转换
=== 全等, 不仅值要相等, 类型也要相等
// 太空船 <=>var_dump(10 <=> 20);// -1 < 0, 说明 10 小于 20var_dump(10 <=> 5);// 1 > 0, 说明 10 大于 5var_dump(10 <=> 10);// 0, 说明 相等

| 序号 | 运算符 | 示例 | 描述 | 场景 |
|---|---|---|---|---|
| 1 | ?: |
$a ?: $b |
仅判断表达式true/false |
简化双分支 |
| 2 | ?? |
$a ?? $b |
判断变量存在且不为 null |
设置默认值 |
// ? : 简化双分支if$price = 900;if ($price > 1000) echo '太贵了'; else echo '真便宜';// 条件 ? true : falseecho $price > 1000 ? '太贵了' : '真便宜';echo '<hr>';// ?? null合并运算符// 设置变量默认值$password = '123abc';// 相同于 $password = isset($password) ? $password : 'root';$password = $password ?? 'root';echo $password;
| 序号 | 类型 | 语法 | 模板语法 |
|---|---|---|---|
| 1 | 单分支 | if(){...} |
if(): ... endif; |
| 2 | 双分支 | if(){...} else {...} |
if(): ... else: ... endif; |
| 3 | 多分支 | if(){...} elseif {...} else {...} |
if(): ... elseif: ... else: ... endif; |
| 4 | switch |
switch() {case: ... break...} |
switch(): ...endswitch; |
// 拼团人数打折价格// 单分支// 团购人数$renshu = 5;//实际价格$shijijiage = 2000;if ($renshu > 3) {$shijijiage *= 0.9;}echo '实际支付: ' . $shijijiage . '<br>';echo '<hr>';// 单分支模板语法$shijijiage = 2000;if ($renshu > 3) : $shijijiage *= 0.9; endif;echo '实际支付: ' . $shijijiage . '<br>';echo '<hr>';// 双分支$shijijiage = 2000;if ($renshu > 3) {$shijijiage *= 0.9;} else {$shijijiage = $shijijiage;}echo '实际支付: ' . $shijijiage . '<br>';echo '<hr>';// 双分支模板语法$renshu = 2;$shijijiage = 2000;if ($renshu > 3) :$shijijiage *= 0.9;else :$shijijiage = $shijijiage;endif;echo '实际支付: ' . $shijijiage . '<br>';echo '<hr>';// 多分支$renshu = 6;$shijijiage = 2000;if ($renshu > 5 && $renshu < 10) {$shijijiage *= 0.9;} elseif ($renshu >= 10 && $renshu < 20) {$shijijiage *= 0.8;} elseif ($renshu >= 20) {$shijijiage *= 0.7;} else {$shijijiage = $shijijiage;}echo '实际支付: ' . $shijijiage . '<br>';echo '<hr>';// 多分支模板语法$renshu = 55;$shijijiage = 2000;if ($renshu > 5 && $renshu < 10) :$shijijiage *= 0.9;elseif ($renshu >= 10 && $renshu < 20) :$shijijiage *= 0.8;elseif ($renshu >= 20) :$shijijiage *= 0.7;else :$shijijiage = $shijijiage;endif;echo '实际支付: ' . $shijijiage . '<br>';echo '<hr>';// switch: 简化多分支$renshu = 12;$shijijiage = 2000;switch (true) {case $renshu > 5 && $renshu < 10:$shijijiage *= 0.9;break;case $renshu >= 10 && $renshu < 20:$shijijiage *= 0.8;break;case $renshu >= 20:$shijijiage *= 0.7;break;default:$shijijiage = $shijijiage;}echo '实际支付: ' . $shijijiage . '<br>';echo '<hr>';// switch模板语法$renshu = 12;$shijijiage = 2000;switch (true) :case $renshu > 5 && $renshu < 10:$shijijiage *= 0.9;break;case $renshu >= 10 && $renshu < 20:$shijijiage *= 0.8;break;case $renshu >= 20:$shijijiage *= 0.7;break;default:$shijijiage = $shijijiage;endswitch;echo '实际支付: ' . $shijijiage . '<br>';echo '<hr>';// switch 更常用的场景是单值判断$renshu = 12;$shijijiage = 2000;$zhekou = 0.7;switch ($zhekou) :case 0.9:$shijijiage *= 0.9;break;case 0.8:$shijijiage *= 0.8;break;case 0.7:$shijijiage *= 0.7;break;default:$shijijiage = $shijijiage;endswitch;echo '实际支付: ' . $shijijiage . '折扣率:' . $zhekou .'<br>';echo '<hr>';

| 序号 | 类型 | 语法 | 模板语法 |
|---|---|---|---|
| 1 | 入口判断型 | while(){...} |
while(): ... endwhile; |
| 2 | 出口判断型 | do {...} while(); |
do : ... while(); |
| 3 | 计数型 | for(){...} |
for () : ... endfor; |
current():获取数组当前值reset():重置数组指针count(): 计算数组元素的数量strlen(): 计算字符串长度trim(), rtrim(), ltrim(): 是从字符串二边,右边, 左边删除指定的字符,默认删除的是空格mt_rand(min, max): 产生指定范围的随机数
count()判断数组元素个数strlen()判断字符串长度
$cities = ['武汉', '合肥', '南京', '杭州', '上海'];//while循环// $city = current($cities): 循环条件// while ($city = current($cities)) {// echo $city . '<br>';// // 更新循环条件, 没有这个语句, 会进入死循环// next($cities);// }// reset($cities);// 模板语法while ($city = current($cities)) :echo $city . '<br>';// 更新循环条件, 没有这个语句, 会进入死循环next($cities);endwhile;
for(): 计数式循环
// 3. 计数型echo '数组中有 : ' . count($cities);// $i = 0;循环变量初始化// $i < count($cities): 循环条件// $i++: 更新循环条件for ($i = 0; $i < count($cities); $i++) {// echo $cities[$i] . '<br>';}// 模板语法for ($i = 0; $i < count($cities); $i++) :// echo $cities[$i] . '<br>';endfor;
for()循环遍历 关联数组next()向后移动,同时会获得当前数组元素的值prev()向前移动,同时会获得当前数组元素的值end()移动到最后一个数组元素,并获得它的值reset()移动到第一个数组元素,并获得它的值key()获得当前数组指针指向的数组元素的键名current()获得当前数组指针指向的数组元素的值
循环控制关键字:
| 序号 | 关键字 | 描述 |
|---|---|---|
| 1 | continue |
终止本次循环,提前进入下一轮 |
| 2 | break |
跳出本层循环 |
continue break使用方法:
for ($i = 0; $i < count($cities); $i++) :// 跳过空数据if (!$cities[$i]) continue;echo $cities[$i] . '<br>';// break; 跳出本层if ($cities[$i] === '杭州') break;endfor;
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号