博客列表 >可建”高楼“的PHP运算符和流程控制类型

可建”高楼“的PHP运算符和流程控制类型

emy
emy原创
2020年04月19日 15:31:00638浏览

俗话说:万丈高楼平地起,想把PHP学习好,运用自如,掌握运算符和流程控制类型知识是必不可少。

一、运算符:据运算符的作用,可以将PHP中常见的运算符分为以下7类:

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 次方

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.比较运算符:用于表达式的比较并返回一个布尔类型的值,true或false。

序号运算符示例描述
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+

举例说明:

var_dump(30 > 20);
// ==: 只判断值是否相等, 不判断类型
// 当==二边的类型不同时,会发生类型的自动转换
// var_dump(50 == (int)'50');
// === 全等, 不仅值要相等, 类型也要相等
var_dump(60 === '60');

注:比较运算符: 返回布尔值,常用于流程控制中(if/while/for...)   
<=>: 也叫组合比较符, 例如$a <=> $b, 有三种返回结果,如下:

序号运算结果
1$a > $b返回>0的整数
2$a < $b返回<0的整数
3$a = $b返回=0的整数

5.逻辑运算符:根据表达式的值返回一个布尔类型的值,true或者false

序号运算符示例描述
1&&$a && $b逻辑与
2

||

`$a || $b`

逻辑或
3!!$a逻辑非
4xor$a xor $b逻辑异或

6.三元运算符:也称为三目运算符,用于根据一个表达式在另两个表达式中选择一个,而不是用来
在两个语句或者程序中选择。三元运算符最好放在括号里使用。

序号运算符示例描述场景
1?:$a ?: $b仅判断表达式true/false简化双分支
2??$a ?? $b判断变量存在且不为 null设置默认值

举例说明:

// ? : 简化双分支if 
$yanzhi = 120;
if ($yanzhi > 100)  echo '太帅了'; else echo '真难看';
// 条件 ? true : false
echo $yanzhi > 100 ? '太帅了' : '真难看';

7.错误屏蔽符:对错误信息进行屏蔽,并没有真正解决错误。

运算符示例描述场景
@@(10/0)屏蔽所有运行错误线上生产环境

注:不能屏蔽语法错误。

二、流程控制

1.分支结构

序号类型语法模板语法
1单分支if(){...}if(): ... endif;
2双分支if(){...} else {...}if(): ... else: ... endif;
3多分支if(){...} elseif {...} else {...}if(): ... elseif: ... else: ... endif;
4switchswitch() {case: ... break...}switch(): ...endswitch;

举例说明:

<?php
# 分支结构
// 积分
$jifen = 100;

//1. 单分支
if ($jifen > 100) {
    echo '铜牌会员';
}
// 单分支模板写法:(模板语法的目标是: 干掉大括号)
// 注:模板语法, 用在与html代码混编的时候

if ($jifen > 100) :
    echo '铜牌会员';
endif;

//2. 双分支
if($jifen >= 1000){
    echo '银牌会员';
}elseif(100 <= $jifen){
    echo '铜牌会员';
}
echo '<hr>';
// 双分支模板语法
if ($jifen >= 1000) :
    echo '银牌会员';
else :
    echo '铜牌会员';
endif;

// 3. 多分支
if($jifen >= 100 && $jifen <= 50){
    echo '铜牌会员';
}elseif($jifen >= 1000 && $jifen <= 9999){
    echo '银牌会员';
}elseif($jifen >= 10000 && $jifen <= 99999){
    echo '金牌会员';
}else{
    echo '普通会员';
}
echo '<hr>';

//多分支模板语法
if($jifen >= 100 && $jifen <= 50):
    echo '铜牌会员';
elseif($jifen >= 1000 && $jifen <= 9999):
    echo '银牌会员';
elseif($jifen >= 10000 && $jifen <= 99999):
    echo '金牌会员';
else:
    echo '普通会员';
endif;

// 4. switch: 简化多分支
switch(true){
    case $jifen >= 100 && $jifen <= 50 : 
        echo '铜牌会员';
break;
    case $jifen >= 1000 && $jifen <= 9999 : 
        echo '银牌会员';
break;
    case $jifen >= 10000 && $jifen <= 99999 : 
        echo '金牌会员';
break;
    default: echo '普通会员';
}

//简化多分支模板语法
switch(true):
    case $jifen >= 100 && $jifen <= 50 : 
        echo '铜牌会员';
break;
    case $jifen >= 1000 && $jifen <= 9999 : 
        echo '银牌会员';
break;
    case $jifen >= 10000 && $jifen <= 99999 : 
        echo '金牌会员';
break;
    default: echo '普通会员';
endswitch;

2.循环结构

序号类型语法模板语法
1入口判断型while(){...}while(): ... endwhile;
2出口判断型do {...} while();do : ... while();
3计数型for(){...}for () : ... endfor;

循环控制关键字:

序号关键字描述
1continue终止本次循环,提前进入下一轮
2break跳出本层循环

举例说明:

<?php
# 循环
$type = ['砖茶', '沱茶', '散茶', '其它'];
// 1. 入口判断型 while循环:while(){...}
$types = current($type);
while ($types = current($type)) {
    echo $type . '<br>';
    // 更新循环条件, 没有这个语句, 会进入死循环
    next($type);
}
reset($type);
// 模板语法
while ($types = current($type)) :
    echo $types . '<br>';
    // 更新循环条件, 没有这个语句, 会进入死循环
    next($type);
endwhile;
echo '<hr>';

// 2. 出口判断型  do{}while()循环
do {
    $types = current($type);
    echo $types . '<br>';
    // 更新循环条件, 没有这个语句, 会进入死循环
    next($type);
} while ($types = current($type));
// 无论条件是否为真,至少会执行一次
// 没有对应的模板语法

// 3. 计数型 for (初始值; 条件; 增量){ 要执行的代码;}
echo '数组中有 : ' . count($type);
// $i = 0;循环变量初始化
// $i < count($cities): 循环条件
// $i++: 更新循环条件
for ($i = 0; $i < count($type); $i++) {
    echo $type[$i] . '<br>';
}

// 模板语法 
for ($i = 0; $i < count($type); $i++) :
    // echo $type[$i] . '<br>';
endfor;
echo '<hr>';

//循环控制关键字:

// continue: 终止当前循环,提前进入下一轮
$type = ['砖茶', '沱茶', false, '散茶', null, '其它'];

for ($i = 0; $i < count($type); $i++) :
      // 终止本次循环,提前进入下一轮
      if (!$type[$i]) continue;
    echo $type[$i] . '<br>';
// break; 跳出本层循环
if ($type[$i] === '散茶') break;
endfor;

三、学习总结:

算数运算符, 可以实现变量值在数学意义上的加减乘除幂等。流程控制, 可满足不同的条件时, 执行相应的代码。

在编写PHP代码中,掌握以下条件语句,十分重要。
if 语句 - 在条件成立时执行代码;
if...else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码;
if...else if....else 语句 - 在若干条件之一成立时执行一个代码块;
switch 语句 - 在若干条件之一成立时执行一个代码块。


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议