一.运算符
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;
}
}
}