目录
一: 什么是运算符
1.运算符是告诉PHP做相关运算的标识符号。例如,你需要计算123乘以456等于多少,这时候就需要一个符号,告诉服务器,你需要做乘法运算;
2.PHP中的运算符有哪些?PHP运算符一般分为算术运算符、赋值运算符、比较运算符、三元运算符、逻辑运算符、字符串连接运算符、错误控制运算符。
3.eg:
<?php
$a = 1;
$b = 1;
$c = $a + $b;
echo $c; //2
?>
二:PHP中的算术运算符
1. 算术运算符主要是用于进行算术运算的,例如:加法运算、减法运算、乘法运算、除法运算;
2.在PHP中的常用的算术运算符对应下表:
算术运算符 | 名称 | 示例 | 结果 | 举例 |
---|---|---|---|---|
+ | 加法 | $a + $b | $a和$b的和 | 3+4=7 |
- | 减法 | $a - $b | $a和$b的差 | 6-4=2 |
* | 乘法 | $a*$b | $a和$b的积 | 3*7=21 |
/ | 除法 | $a/$b | $a和$b的商 | 8/2=4 |
% | 取模 | $a%$b | $a除以$b的余数 | 6%3=0 |
注意:大模小取余数,小模大取小;
3.eg:
<?php
$english = 110; //英语成绩
$math= 118; //数学成绩
$biological = 80; //生物成绩
$physical = 90; //物理成绩
$sum = $english+$math+$biological+$physical; //总分
$avg = $sum / 4; //平均分
$x = $math - $english; //计算数学比英语高几分
$x2 = $english * $english;//学习下乘法的计算方法
$x3 = 7%3; //大模小取余
$x4 = 6%7; //小模大取小
echo "总分:".$sum."<br />";
echo "平均分:".$avg."<br />";
echo "数学比英语高的分数:".$x."<br />";
echo "英语成绩的平方:".$x2."<br />";
echo $x3."<br />";
echo $x4."<br />";
效果:
总分:398
平均分:99.5
数学比英语高的分数:8
英语成绩的平方:12100
1
6
4.取模算术符有啥用呢?
假设我们要在一个考场安排了一场考试,对考生从1开始,都进行了编号,那么怎么让服务器帮助我们计算考生在的位置呢,进而打印考场的考生对照表呢?
<?php
$maxLine = 4; //每排人数
$no = 17;//学生编号
$line = ceil($no/$maxLine);
$row = $no%$maxLine?$no%$maxLine:$maxLine;
echo "编号<b>".$no."</b>的座位在第<b>".$line."</b>排第<b>".$row."</b>个位置";
//编号17的座位在第5排第1个位置
?>
三: PHP中的赋值运算符
=>PHP的赋值运算符有两种,分别是:
1.“=”:把右边表达式的值赋给左边的运算数。它将右边表达式值复制一份,交给左边的运算数。换而言之,首先给左边的运算数申请了一块内存,然后把复制的值放到这个内存中;
赋值 | 等同于 | 描述 |
---|---|---|
x = y | x = y | 右侧表达式为左侧运算数设置值。 |
x += y | x = x + y | 加 |
x -= y | x = x - y | 减 |
x *= y | x = x * y | 乘 |
x /= y | x = x / y | 除 |
x %= y | x = x % y | 模数 |
<?php
$x=10;
echo $x; // 输出 10
$y=20;
$y += 100;
echo $y; // 输出 120
$z=50;
$z -= 25;
echo $z; // 输出 25
$i=5;
$i *= 6;
echo $i; // 输出 30
$j=10;
$j /= 5;
echo $j; // 输出 2
$k=15;
$k %= 4;
echo $k; // 输出 3
?>
2.“&”:引用赋值,意味着两个变量都指向同一个数据。它将使两个变量共享一块内存,如果这个内存存储的数据变了,那么两个变量的值都会发生变化。
<?php
$a = "我在慕课网学习PHP!";
$b = $a;
$c = &$a;
$a = "我天天在慕课网学习PHP!";
echo $b."<br />"; //输出: 我在慕课网学习PHP!
echo $c."<br />"; //输出: 我天天在慕课网学习PHP!
?>
注意: 此处$b在$a改变前已经赋值了,不改变,$c和$a是引用赋值关系,两个一同改变;
四: PHP中的比较运算符
1.比较运算符主要是用于进行比较运算的,例如:等于、全等、不等、大于、小于。
2.在PHP中常用的比较运算符如下表:
运算符 | 名称 | 例子 | 结果 |
---|---|---|---|
== | 等于 | $x == $y | 如果 $x 等于 $y,则返回 true。 |
=== | 全等(完全相同) | $x === $y | 如果 $x 等于 $y,且它们类型相同,则返回 true。 |
!= | 不等于 | $x != $y | 如果 $x 不等于 $y,则返回 true。 |
<> | 不等于 | $x <> $y | 如果 $x 不等于 $y,则返回 true。 |
!== | 不全等(完全不同) | $x !== $y | 如果 $x 不等于 $y,或它们类型不相同,则返回 true。 |
> | 大于 | $x > $y | 如果 $x 大于 $y,则返回 true。 |
< | 小于 | $x < $y | 如果 $x 小于 $y,则返回 true。 |
>= | 大于或等于 | $x >= $y | 如果 $x 大于或者等于 $y,则返回 true. |
<= | 小于或等于 | $x <= $y | 如果 $x 小于或者等于 $y,则返回 true。 |
3.eg:
<?php
$x=100;
$y="100";
var_dump($x == $y); //bool(true)
echo "<br>";
var_dump($x === $y); //bool(false)
echo "<br>";
var_dump($x != $y); //bool(false)
echo "<br>";
var_dump($x !== $y); //bool(true)
echo "<br>";
$a=50;
$b=90;
var_dump($a > $b); //bool(false)
echo "<br>";
var_dump($a < $b); //bool(true)
?>
五: PHP中的三元运算符
1. (“?:”)三元运算符也是一个比较运算符,对于表达式(expr1)?(expr2):(expr3),如果expr1的值为true,则此表达式的值为expr2,否则为expr3。
2.eg:
<?php
$a = 78;//成绩
$b = $a >= 60 ? "及格": "不及格";
echo $b; //页面输出: 及格
?>
六: PHP中的逻辑运算符
1.逻辑运算符主用是进行逻辑运算的,例如:逻辑与、逻辑或、逻辑异或、逻辑非等;
2.在PHP中常用的逻辑运算符如下表:
运算符 | 名称 | 例子 | 结果 |
---|---|---|---|
and | 与 | $x and $y | 如果 $x 和 $y 都为 true,则返回 true。 |
or | 或 | $x or $y | 如果 $x 和 $y 至少有一个为 true,则返回 true。 |
xor | 异或 | $x xor $y | 如果 $x 和 $y 有且仅有一个为 true,则返回 true。 |
&& | 与 | $x && $y | 如果 $x 和 $y 都为 true,则返回 true。 |
|| | 或 | $x || $y | 如果 $x 和 $y 至少有一个为 true,则返回 true。 |
! | 非 | !$x | 如果 $x 不为 true,则返回 true。 |
3.我们可以从投票的角度来理解逻辑运算:
- 逻辑与:要求所有人都投票同意,才会通过某协议;
- 逻辑或:只要求一个人投票同意就行;
- 逻辑异或:只能有且只能有一个人投票同意;
- 逻辑非:某个人要反对,但是通过逻辑非,使其反对无效;
七: PHP中的字符串连接运算符
=>字符串连接运算符是为了将两个字符串进行连接,PHP中提供的字符串连接运算符有:
- 连接运算符(“.”):它返回将右参数附加到左参数后面所得的字符串。
- 连接赋值运算符(“.=”):它将右边参数附加到左边的参数后。
运算符 | 名称 | 例子 | 结果 |
---|---|---|---|
. | 串接 | $txt1 = "Hello" $txt2 = $txt1 . " world!" | 现在 $txt2 包含 "Hello world!" |
.= | 串接赋值 | $txt1 = "Hello" $txt1 .= " world!" | 现在 $txt1 包含 "Hello world!" |
eg:
<?php
$a = "Hello";
$b = $a . " world!";
echo $b; // 输出 Hello world!
$x="Hello";
$x .= " world!";
echo $x; // 输出 Hello world!
?>
八: PHP中的错误控制运算符
1.PHP中提供了一个错误控制运算符“@”,对于一些可能会在运行过程中出错的表达式时,我们不希望出错的时候给客户显示错误信息,这样对用户不友好。于是,可以将@放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉;
2.如果激活了track_error(这个玩意在php.ini中设置)特性,表达式所产生的任何错误信息都被存放在变量$php_errormsg中,此变量在每次出错时都会被覆盖,所以如果想用它的话必须尽早检查。
3.需要注意的是:错误控制前缀“@”不会屏蔽解析错误的信息,不能把它放在函数或类的定义之前,也不能用于条件结构例如if和foreach等。
4.eg:不含错误控制运算符“@”的错误提示
<?php
$conn = mysql_connect("localhost","username","password");
echo "出错了,错误原因是:".$php_errormsg;
?>
效果:
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in D:\wwwroot\test\Ajax.php on line 2
Warning: mysql_connect(): Access denied for user 'username'@'localhost' (using password: YES) in D:\wwwroot\test\Ajax.php on line 2
出错了,错误原因是:mysql_connect(): Access denied for user 'username'@'localhost' (using password: YES)
5.eg:含错误控制运算符“@”
<?php
$conn = @mysql_connect("localhost","username","password");
echo "出错了,错误原因是:".$php_errormsg;
?>
效果:
出错了,错误原因是:mysql_connect(): Access denied for user 'username'@'localhost' (using password: YES)
九: PHP 递增/递减运算符
运算符 | 名称 | 描述 |
---|---|---|
++$x | 前递增 | $x 加一递增,然后返回 $x |
$x++ | 后递增 | 返回 $x,然后 $x 加一递增 |
--$x | 前递减 | $x 减一递减,然后返回 $x |
$x-- | 后递减 | 返回 $x,然后 $x 减一递减 |
eg:
<?php
$x=10;
echo ++$x; // $x 加一递增,然后返回 $x, 输出 11
echo "<br />";
echo $x; //输出11
echo "<br />";
$y=10;
echo $y++; //返回 $x,然后 $x 加一递增, 输出 10
echo "<br />";
echo $y; //输出11
echo "<br />";
$z=5;
echo --$z; // $x 减一递减,然后返回 $x, 输出 4
echo "<br />";
echo $z; //输出4
echo "<br />";
$i=5;
echo $i--; // 返回 $x,然后 $x 减一递减,输出 5
echo "<br />";
echo $i; //输出4
?>