这篇文章主要介绍PHP的各种运算符,和流程控制。
运算符
PHP中的运算符有很多种:
赋值运算符:赋值操作
算术运算符:算数计算
错误抑制符:抑制错误
比较运算符:数据对比
合并运算符:真伪判定给出不同结果
逻辑运算符:逻辑结果判定
连接运算符:字符串连接
三目运算符:真伪判断给出不同结果
自操作运算符:简化操作
一、赋值运算符
有以下几种:
=
:普通赋值。+=
、-=
、*=
、/=
、%=
:复合赋值运算(是将左侧和右侧的整体结果进行计算)。.=
:先将左边的符号的结果与右边的结果进行字符串连接(.
是字符串连接),然后赋给左边。
二、算数运算符
除了简单的加减乘除取余等,还有其他需要格外注意的运算符。
**
:幂运算,底数的指数次运算。
三、错误抑制符
错误抑制:在可能出现错误的代码前使用错误抑制符,让错误不会报出来。
只需要在可能出现的错误表达式之前使用即可。
错误抑制符只有一个:
@
错误抑制符只针对就近的目标,如果是针对结果,需要使用
()
。只能抑制简单的错误(如notice,warning)。
1 | #正常处理 |
四、比较运算符
除了熟悉的>,<,>=,<=,==,!=
等运算符,格外介绍下面的特殊运算符。
- <=>:左边大于右边返回1,相等返回0,小于右边返回-1
- ===:左边等于右边,且两边数据类型一致,返回true。
- !==:左边等于右边,且两边数据类型一致,返回false。
注意:在PHP中比较运算比较特殊,通常系统会自动将类型转换成相同的然后进行比较,所以在使用==和===比较的时候,如果不够确定可以参考PHP操作手册中的类型比较表。
五、合并运算
概念:用于简单的数据存在型判定,不存在时给出一个设定值。
- 合并运算需要一个判定:目标。
- 合并运算需要一个设定值:目标不存在时的值。
- 合并运算符:$a ?? B
- $a存在,整个表达式返回$a的值。
- $a不存在,整个表达式返回B值。
- 合并运算是保证代码的逻辑完整性:即总是有一个结果(不会不存在)
六、连接运算
概念:专门为字符串连接操作设定的运算符。
- 连接运算需要两个数据的参与。
- 连接运算符只有一个:
.
英文点。 - 连接运算是将两个字符串连接成一个字符串。
- 如果数据不是字符串,系统会自动转变为字符串。
示例
1 | $a = 'hello'; |
七、三目运算
和基本的编程语言一样
1 | 表达式1?表达式2:表达式3 |
八、逻辑运算
逻辑与或非 。
&&,||,!。
九、自操作运算
自增自减。
流程控制
选择结构
If分支
1 | if ($a > $b) { |
需要注意一点elseif和else if的一点细微区别,参见博客。https://blog.csdn.net/qq_31659985/article/details/82807153
Switch分支
1 | switch(条件变量){ |
循环结构
while循环
1 | while(条件表达式){ |
for循环
1 | for(;;){ |
foreach循环
PHP中专门进行数组遍历的循环
1 | foreach(数组变量 as [下标变量=>] 值变量){ |
例如:
1 | $info = [ |
注意:
foreach是根据数据指针所在的位置挨个取出元素的
- 重置指针:执行一次。
- 判断指针有效性
- 指针有效:取出数组元素
- 下标赋值给下标变量(如果提供了下标变量)
- 值赋值给值变量
- 指针下移
- 指针无效:循环结束
- 指针有效:取出数组元素
- 进入循环体
foreach可以不获取数组元素的下标
do-while循环
语法基本一致。
break,continue
语法基本一致。