PHP运算符与流程控制详解
PHP运算符与流程控制详解
在PHP编程中,运算符和流程控制结构是两个非常重要的概念。运算符用于对数据进行各种运算,而流程控制结构则用于控制程序的执行流程。本文将详细介绍PHP中的各种运算符和流程控制结构,帮助读者更好地理解和掌握PHP编程。
运算符
运算符是一种将数据进行运算的特殊符号,在PHP中一共有十种运算符之多。
赋值运算符
赋值运算符符号是=
,表示将右边的结果(可以是变量、数据、常量和其它运算出来的结果),保存到内存的某个位置,然后将位置的内存地址赋值给左侧的变量(常量)。
算术运算符
+ 执行数据累加
- 数据相减
* 键盘上没有乘法符号,使用*代替,两个数相乘
/ 正斜杠代替,表示两个数相除
% 取余(模)运算,两个数(整数)相除,保留余数
在进行除法运算或者取余运算的时候,对应的除数(第二个数)不能为0。
比较运算符
> 左边大于右边,返回结果true
>= 左边大于等于右边
< 左边小于右边
<= 左边小于或者等于右边
== 左边的与右边的相同(数值大小相同)
!= 左边的与右边的不同(数值大小不同)
=== 全等于,左边与右边相同:大小以及数据的类型都要相同
!== 不全等于,只有大小或者类型不同
逻辑运算符
&& 逻辑与,左边的条件与右边的条件同时成立(两边结果都为true)
|| 逻辑或,左边的条件或者右边的条件只要有一个满足即可
! 逻辑非,对已有条件进行取反,本身为true,取反结果就是false
连接运算符
. 将两个字符串连接到一起
.= 复合运算,将左边的内容与右边的内容连接起来,然后重新赋值给左边变量
eg:
A .= b ===== A = A . b
错误抑制符
在PHP中有一些错误可以提前预知,但是这些错误可能无法避免,但是又不希望报错给用户看,可以使用错误抑制符处理。
@ 在可能出错的表达式前面使用@符号即可
错误抑制符通常在生产环境(上线)会用到,在开发的时候不会用:系统本身最好没有任何错误。
三目运算符
三目运算:有三个表达式参与的运算(简单的的分支结构缩写)
返回值 = 表达式1 ? 表达式2 :表达式3;
运算:如果表达式1成立,那么执行表达式2,否则执行表达式3;
注意:如果表达式本身比较复杂,建议使用括号包起来。
自操作运算符
自操作:自己操作自己的运算符
++ 在原来的值上+1
-- 在原来的值上-1
+= 左边的结果与右边结果相加,然后赋值给左边
-= 左边的减去右边的结果,然后复制给左边
*= 乘法操作
/= 除法操作
%= 模操作
$a = 1;
$a++; // $a = $a + 1;
位运算符
位运算:取出计算机中最小的单位(位bit)进行运算
& 按位与,两个位都为1,结果为1,否则为0
| 按位或,两个有一个为1,结果为1
~ 按位非,一个位如果为1则变成0,否则反之
系统进行任何位运算的时候都是使用的都是补码
运算结束之后都必须转换成原码才是最终要显示的数据
^ 按位异或,两个相同则为0,不同则为1
<< 按位左移,整个位(32位),向左移动一位,右边补0
>> 按位右移,整个位向右移动一位,左边补符号位对应内容(正数补0,负数补1)
运算符优先级
运算符优先级决定了在表达式中多个运算符的计算顺序。优先级高的运算符会先于优先级低的运算符进行计算。例如,乘法运算符*
的优先级高于加法运算符+
,因此在表达式3 + 4 * 5
中,4 * 5
会先于3 +
进行计算。
运算符优先级从高到低的顺序大致如下:
- 括号
()
- 一元运算符
++
,--
,+
,-
,!
,~
- 乘除模运算
*
,/
,%
- 加减运算
+
,-
- 位移运算
<<
,>>
- 关系运算
<
,>
,<=
,>=
- 相等运算
==
,!=
,===
,!==
- 位与运算
&
- 位或运算
|
- 逻辑与运算
&&
- 逻辑或运算
||
- 三元运算
?:
- 赋值运算
=
,+=
,-=
等
在编写复杂的表达式时,合理使用括号可以明确指定运算顺序,避免因优先级问题导致的错误。
流程控制
流程控制结构用于控制程序的执行流程,主要包括顺序结构、分支结构和循环结构。
顺序结构
顺序结构是最基本的结构,所有代码默认都是从上往下依次执行。
分支结构
分支结构根据给定的条件,选择执行不同的代码块。PHP中主要有两种分支结构:if分支和switch分支。
if分支
if分支是最常用的分支结构,可以根据条件判断执行不同的代码块。其基本语法如下:
if (条件) {
// 条件为真时执行的代码
} else {
// 条件为假时执行的代码
}
switch分支
switch分支用于处理多分支选择的情况。其基本语法如下:
switch (表达式) {
case 值1:
// 表达式等于值1时执行的代码
break;
case 值2:
// 表达式等于值2时执行的代码
break;
default:
// 表达式不等于任何case值时执行的代码
}
循环结构
循环结构用于重复执行某段代码。PHP中主要有以下几种循环结构:
for循环
for循环是最常用的循环结构,可以指定循环的起始、终止和步进条件。其基本语法如下:
for (初始化; 条件; 步进) {
// 循环体
}
while循环
while循环在条件为真时重复执行循环体。其基本语法如下:
while (条件) {
// 循环体
}
do-while循环
do-while循环与while循环类似,但至少会执行一次循环体。其基本语法如下:
do {
// 循环体
} while (条件);
foreach循环
foreach循环专门用于遍历数组。其基本语法如下:
foreach (数组 as $value) {
// 循环体
}
或者
foreach (数组 as $key => $value) {
// 循环体
}
控制语句
在循环结构中,可以使用continue
和break
语句来控制循环的执行流程。
continue
continue
语句用于跳过当前循环的剩余部分,直接进入下一次循环。其基本语法如下:
for ($i = 0; $i < 10; $i++) {
if ($i % 2 == 0) {
continue;
}
echo $i;
}
break
break
语句用于立即退出循环。其基本语法如下:
for ($i = 0; $i < 10; $i++) {
if ($i == 5) {
break;
}
echo $i;
}
此外,还可以使用break
和continue
的带参数形式来控制多层循环的执行流程。例如:
for ($i = 0; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++) {
if ($i == 1 && $j == 1) {
break 2; // 跳出两层循环
}
echo "$i $j\n";
}
}
通过合理使用这些控制语句,可以更灵活地控制程序的执行流程。