运算符
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 的整数 |
5. 逻辑运算符
序号 |
运算符 |
示例 |
描述 |
1 |
&& |
$a && $b |
逻辑与 |
2 |
` |
|
` |
`$a |
|
$b` |
逻辑或 |
3 |
! |
!$a |
逻辑非 |
4 |
xor |
$a xor $b |
逻辑异或 |
6. 三元运算符
序号 |
运算符 |
示例 |
描述 |
场景 |
1 |
?: |
$a ?: $b |
仅判断表达式true/false |
简化双分支 |
2 |
?? |
$a ?? $b |
判断变量存在且不为 null |
设置默认值 |
7. 错误屏蔽符
运算符 |
示例 |
描述 |
场景 |
@ |
@(10/0) |
屏蔽所有运行错误 |
线上生产环境 |
2流程控制
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
//1.单分支
$amount = 6000;
$payment =$amount;
if ($amount > 2500){
$payment = $amount * 0.9;
}
echo '实际支付:'. $payment .'元<br>';
//如果代码本只有一行可以省略大括号
// if ($amount > 2500) $payment = $amount * 0.9;
//有一种代替语法:模板语法,与HTML混编
// if ($amount > 2500):
// $payment = $amount * 0.9;
// endif;
//2双分支
if ($amount > 2500){
$payment = $amount * 0.9;
}else{
$payment = $amount;
}
echo '实际支付:'. $payment .'元<br>';
//3模板语法
// if ($amount > 2500) :
// $payment = $amount * 0.9;
// else :
// $payment = $amount;
// endif;
//4多分支
// if ($amount > 2500 && $amount < 5000){
// $payment = $amount * 0.9;
// }elseif ($amount >=5000){
// $payment = $amount * 0.85;
// }else{
// $payment = $amount;
// }
// echo '实际支付:'. $payment .'元<br>';
//模板语法
if ($amount > 2500 && $amount < 5000):
$payment = $amount * 0.9;
elseif ($amount >=5000):
$payment = $amount * 0.85;
else:
$payment = $amount;
endif;
echo '实际支付:'. $payment .'元<br>';
//5 switch
// switch (true) {
// case $amount > 2500 && $amount < 5000:
// $payment = $amount * 0.9;
// break;
// case $amount >=5000:
// $payment = $amount * 0.85;
// break;
// default:
// $payment = $amount;
// }
// echo '实际支付:'. $payment .'元<br>';
//模板语法
switch (true) :
case $amount > 2500 && $amount < 5000:
$payment = $amount * 0.9;
break;
case $amount >=5000:
$payment = $amount * 0.85;
break;
default:
$payment = $amount;
endswitch;
echo '实际支付:'. $payment .'元<br>';
//switch单值判断
$month = 2;
if (floor($month)==$month && $month>0 ) :
switch ($month) :
case $month >= 1 && $month<=3 :
echo '这是第一季度';
break;
case $month >=4 && $month<=6 :
echo '这是第二季度';
break;
case $month >=7 && $month<=9 :
echo '这是第三季度';
case $month >=10 && $month<=12 :
echo '这是第四季度';
default:
echo 'Are You Kidding Me ';
endswitch;
else:
echo 'Are You Kidding Me ';
endif;
2. 循环结构
序号 |
类型 |
语法 |
模板语法 |
1 |
入口判断型 |
while(){...} |
while(): ... endwhile; |
2 |
出口判断型 |
do {...} while(); |
do : ... while(); |
3 |
计数型 |
for(){...} |
for () : ... endfor; |
循环控制关键字:
序号 |
关键字 |
描述 |
1 |
continue |
终止本次循环,提前进入下一轮 |
2 |
break |
跳出本层循环 |
<?php
//循环
$cities = ['杭州','绍兴','上海','南京','温州'];
// current()获取数组当前值 next移动指针 reset 重置数组指针
//入口判断型
while ($city = current($cities)):
echo $city .' ';
next($cities);
endwhile;
echo '<hr>';
//出口判断型 不论条件是否为真,都要执行一遍do
$i=0;
do{
echo $cities[$i] .' ';
$i++;
}
while ($i < count($cities));
echo '<hr>';
//for循环
$cities = ['杭州','绍兴','','上海','南京',null,'温州'];
for ($i=0 ;$i<count($cities);$i++):
//continue`终止本次循环,提前进入下一轮
if (!$cities[$i]) continue;
echo $cities[$i].'<br>';
if ($cities[$i] === '上海') break;
endfor;
总结
1.学习了基本的运算符??
和<=>
需要记忆一下
2.学习了分支结构,循环结构和模板语法