2024年12月30日 星期一 甲辰(龙)年 十月廿六 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > PHP

PHP运算符大全

时间:03-01来源:作者:点击数:87

运算符是说明特定操作的符号,是构造 PHP 语言表达式的工具。本节介绍 PHP 语言常用的运算符及其使用。

算术运算符

算术运算符可以对整型和浮点型的数据进行运算。PHP 中的算术运算符如表所示。 

PHP 算数运算符
运算符 名称 描述 实例
x+y x 和 y 的和 1+2
x-y x 和 y 的差 2-1
x*y x 和 y 的积 2*3
x/y x 除以 y 的商 4/2
x%y 取模(除法的余数) x 除以 y 的余数 5%2
-x 取反 x 取反 -3
intdiv(x,y) 整除 x 除以 y 的商的整数部分,此为 PHP 7 新增运算符 intdiv(10,3)

下面的示例演示了不同算术运算符的使用。

  • <?php
  • $x=10;
  • $y=3;
  • echo ($x + $y);
  • echo "<br/>";
  • echo ($x - $y);
  • echo "<br/>";
  • echo ($x * $y);
  • echo "<br/>";
  • echo ($x / $y);
  • echo "<br/>";
  • echo ($x % $y);
  • echo "<br/>";
  • echo intdiv(10,3);
  • ?>

执行以上代码输出结果如下:

13
7
30
3.3333333333333
1
3

递增递减运算符

递增递减运算符如表所示。 

递增递减运算符
运算符 名称 描述
++x 预递增 x 先加 1,然后返回 x 的值
x++ 后递增 先返回 x 的值,x 再加 1
-x 预递减 x 先减 1,然后返回 x 的值
x- 后递减 先返回 x 的值,x 再加 1

递增递减运算符的使用实例:

  • <?php
  • $x = 2;
  • echo ++$x; //输出3
  • $x = 5;
  • echo $x++; //输出5
  • $x = 7;
  • echo --$x; //输出6
  • $x = 9;
  • echo $x--; //输出9
  • ?>

执行以上代码在浏览器中的打印结果是:

3569

比较运算符

比较运算符如表所示。

比较运算符
运算符 名称 描述
x==y 等于 如果 x 等于 y,返回 true,否则返回 false
x===y 恒等于 如果 x 恒等于 y,且两者数据类型相同,返回 true,否则返回 false
x!=y 不等于 如果 x 不等于 y,返回 true,否则返回 false
x<>y 不等于 如果 x 不等于 y,返回 true,否则返回 false
x!==y 不恒等于 如果 x 不等于 y,或两者类型不同,返回 true,否则返回 false
x>y 大于 如果 x 大于 y,返回 true,否则返回 false
x<y 小于 如果 x 小于 y,返回 true,否则返回 false
x>=y 大于等于 如果 x 大于等于 y,返回 true,否则返回 false
x<=y 小于等于 如果 x 小于等于 y,返回 true,否则返回 false
x<=>y 组合比较符 如果 x 的值和 y 的值相等(不是恒等于),就返回 0;如果 x 的值大于 y 的值,就返回 1;如果 x 的值小于 y 的值,就返回 -1。此为 PHP 7 新增运算符

比较运算符的使用示例如下:

  • <?php
  • $x=100;
  • $y="100";
  • var_dump($x == $y); //bool(true)
  • var_dump($x === $y); //bool(false)
  • var_dump($x != $y); //bool(false)
  • var_dump($x !== $y); //bool(true)
  • $a=50;
  • $b=90;
  • var_dump($a > $b); //bool(false)
  • var_dump($a < $b); //bool(true)
  • var_dump($a <> $b); //bool(true)
  • var_dump($a <=> $b); //int(-1)
  • var_dump($b <=> $a); //int(1)
  • var_dump($x <=> $y); //int(0)
  • ?>

逻辑运算符

逻辑运算符如表所示。 

逻辑运算符
运算符 名称 描述
a and b 只有 a 和 b 都为 true 才返回 true
x or y a 和 b 至少一个为 true 才返回 true
a xor b 异或 a 和 b 仅有一个为 true 就返回 true
a && b a 和 b 都为 true 才返回 true
a || b a 和 b 至少一个为 true 就返回 true
!a 当 a 为 true 时返回 false,a 为 false 时返回 true

逻辑运算符的使用示例如下:

  • <?php
  • $a = true;
  • $b = false;
  • var_dump($a and $b); //bool(false)
  • var_dump($a or $b); //bool(true)
  • var_dump($a && $b); //bool(false)
  • var_dump($a || $b); //bool(true)
  • var_dump($a xor $a); //bool(false)
  • var_dump($a xor $b); //bool(true)
  • var_dump(!$a); //bool(false)
  • ?>

三元运算符

三元运算符的语法格式如下:

(expr1) ? (expr2) : (expr3)

当 expr1 求值结果为 true 时,上述表达式返回 expr2 的值,否则返回 expr3 的值。

可以省略 expr2,此时语法格式为:(expr1) ? : (expr3)。同样,当 expr1 求值结果为 true 时,返回 expr1,否则返回 expr3。

在 PHP 7 版本多了一个 NULL 合并运算符??。例如,(expr1) ?? (expr2),当 expr1 不为 NULL 时返回 expr1 的值,否则返回 expr2 的值。示例如下:

  • <?php
  • $a = (1>2) 'big' : 'small';
  • $b = (3>2) : 'small';
  • $c = (1>2) : 'big';
  • $d = null2;
  • $e = 52;
  • var_dump($a); //string(5) "small"
  • var_dump($b); //bool(true)
  • var_dump($c); //string(3) "big"
  • var_dump($d); //int(2)
  • var_dump($e); //int(5)
  • ?>

字符串连接运算符

PHP 中使用英文字符.将两个或多个字符串连接起来。示例如下:

  • <?php
  • $a = 'hello';
  • $b = 'world';
  • $c = $a . $b;
  • echo $C;
  • ?>

以上代码的输出结果是:

hello world

赋值运算符

赋值运算符是把基本赋值运算符右边的值给左边的变量或常量,如表所示。 

赋值运算符
运算符 实例 展开形式
= $a='b' $a='b'
+= $a+=5 $a=$a+5
-= $a-=5 $a=$a-5
*= $a*=5 $a=$a*5
/= $a/=5 $a=$a/5
.= $a.=5 $a=$a.5
%= $a%=5 $a=$a%5

位运算符

位运算符是指对二进制位从低位到高位对齐后进行运算,如表所示。 

位运算符
运算符 作用 实例
& 按位与 $a&$b
| 按位或 $a|$b
^ 按位异或 $a^$b
~ 按位取反 ~$b
<< 向左移位 $a<<$b
>> 向右移位 $a>>$b

位运算符的使用示例如下:

  • <?php
  • $a = 8;
  • $b = 15;
  • echo ($a & $b) . "<br/>";
  • echo ($a | $b) . "<br/>";
  • echo ($a ^ $b) . "<br/>";
  • echo (~$b) . "<br/>";
  • echo ($a << $b) . "<br/>";
  • echo ($a >> $b) . "<br/>";
  • ?>

运行结果如下:

8
15
7
-16
262144
0

在 PHP 7 中,位移负的位置将会产生异常,左位移超出位数会返回 0。例如,echo(1>>-1) 程序会报错:Fatal error:Uncaught ArithmeticError:Bit shift by negative number。

代码如下:

  • echo (1 >> 2);
  • echo "<br/>";
  • echo (-1 >> 2);

打印结果为:

0
-1
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门