一.运算符
1. 算术运算符
序号 |
运算符 |
示例 |
描述 |
1 |
+ |
$a+$b |
$a与$b 的和 |
2 |
- |
$a-$b |
$a与$b 的差 |
3 |
* |
$a*$b |
$a与$b 的积 |
4 |
/ |
$a/$b |
$a与$b 的商 |
5 |
% |
$a%$b |
$a与$b 的余(模) |
6 |
++ |
$a++/++$a |
先用再加/先加再用 |
7 |
-- |
$a--/--$a |
先用再减/先减再用 |
8 |
** |
2**4 |
幂运算:2 的 4 次方 |
$a++
=>$a = $a + 1
, $a--
=>$a = $a - 1
**
: 幂运算需要 php5.6+
版本
2. 字符串运算符
运算符 |
示例 |
描述 |
. |
$str1 . $str2 |
连接运算,返回连接之后的字符串 |
3. 赋值运算符
序号 |
运算符 |
示例 |
描述 |
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'; |
4. 比较运算符
序号 |
运算符 |
示例 |
描述 |
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
, 有三种返回结果
序号 |
运算 |
结果 |
1 |
$a > $b |
返回>0 的整数 |
2 |
$a < $b |
返回<0 的整数 |
3 |
$a = $b |
返回=0 的整数 |
代码举例
<?php
$a=1;
$b='1';
// ==与=== 比较符
var_dump($a==$b) ;//即通过为true
echo '<br>';
var_dump($a===$b) ;//结果为false
//组合比较符
$b=2;
var_dump($a<=>$b);//结果为-1
var_dump($b<=>$a);//结果为1
5. 逻辑运算符
序号 |
运算符 |
示例 |
描述 |
1 |
&& |
$a && $b |
逻辑与 |
2 |
` |
|
` |
`$a |
|
$b` |
逻辑或 |
3 |
! |
!$a |
逻辑非 |
4 |
xor |
$a xor $b |
逻辑异或 |
||一真全真,\$\$一假全假,!取反
6. 三元运算符
序号 |
运算符 |
示例 |
描述 |
场景 |
1 |
?: |
$a ?: $b |
仅判断表达式true/false |
简化双分支 |
2 |
?? |
$a ?? $b |
判断变量存在且不为 null |
设置默认值 |
代码举例
<?php
// ??运算符:a??b,a为null输出b,a不为null输出a
$a=0;
$b=null;
$c=123;
echo ($a??$c).'<br>';//输出0
echo ($b??$c).'<br>';//输出123
echo ($c??$a).'<br>';//输出123
7. 错误屏蔽符
运算符 |
示例 |
描述 |
场景 |
@ |
@(10/0) |
屏蔽所有运行错误 |
线上生产环境 |
语法错误不能屏蔽
二.流程控制
1. 分支结构
序号 |
类型 |
语法 |
模板语法 |
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; |
代码举例
<?php
//单分支
$score=90;
if($score>80){
echo '成绩为优秀';
}
//单分支模板语法
// if ($score>70):
// echo '优秀';
// endif;
//模板语法多用于html php混编
echo '<hr>';
//双分支
if(0<$score&&$score<60){
echo '未及格';
}elseif(60<=$score){
echo '良好';
}
echo '<hr>';
//多分支
if(0<$score&&$score<60){
echo '未及格';
}elseif(60<=$score&&$score<80){
echo '良好';
}elseif(80<=$score&&$score<=100){
echo '优秀';
}else{
echo '成绩无效';
}
echo '<hr>';
//使用switch语句改写多分支
switch(true){
case 0<$score&&$score<60 : echo '未及格';break;
case 60<=$score&&$score<80 : echo '良好';break;
case 80<=$score&&$score<=100 : echo '优秀';break;
default: echo '成绩无效';
}
echo '<hr>';
//switch 常用写法
switch(floor($score/10)){
case 0:echo '不及格';break;
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;
case 8:echo '优秀';break;
case 9:echo '优秀';break;
case 10:echo '优秀';break;
default: echo '成绩无效';
}
2. 循环结构
序号 |
类型 |
语法 |
模板语法 |
1 |
入口判断型 |
while(){...} |
while(): ... endwhile; |
2 |
出口判断型 |
do {...} while(); |
do : ... while(); |
3 |
计数型 |
for(){...} |
for () : ... endfor; |
循环控制关键字:
序号 |
关键字 |
描述 |
1 |
continue |
终止本次循环,提前进入下一轮 |
2 |
break |
跳出本层循环 |
代码举例
<?php
//使用循环遍历人员名单
$chart=['张三','李四','王五','赵六'];
//while
while ($name = current($chart))//条件判断语句,指针
{
echo $name . '<br>';
next($chart);
}
reset($chart);
echo '<hr>';
//do~while
reset($chart);
do{
echo $name=current($chart) . '<br>';
next($chart);
}while ($name = current($chart));
echo '<hr>';
//for
for($a=0;$a<count($chart);$a++){
echo $chart[$a].'<br>';
}
echo '<hr>';
//continue
//取出数组chart1和chart中都处在的值
$chart1=['张三','小明','王五','赵六','小刚'];
//方法:若数组$chart中存在$name,打印$name,否则跳转至下一循环
for($a=0;$a<count($chart1);$a++){
for($b=0;$b<count($chart);$b++){
if($chart1[$a]==$chart[$b]){
echo $chart1[$a].'<br>';
}
else{
continue;
}
}
}
Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:写了这么多, 辛苦了..., 课堂上说过尽可能使用全等===, 还有, 要有作业总结. 下次注意
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!