购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 运算符

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

2.2.1 算术运算符

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

表2-1 算术运算符

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


     <?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

2.2.2 递增递减运算符

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

表2-2 递增递减运算符

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


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

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


     3569

2.2.3 比较运算符

比较运算符如表2-3所示。

表2-3 比较运算符

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


     <?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)
     ?>

2.2.4 逻辑运算符

逻辑运算符如表2-4所示。

表2-4 逻辑运算符

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


     <?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)
     ?>

2.2.5 三元运算符

三元运算符的语法格式为:(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)
     ?>

2.2.6 字符串连接运算符

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


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

以上代码的输出结果是:


     hello world

2.2.7 赋值运算符

赋值运算符是把基本赋值运算符(“=”)右边的值给左边的变量或常量,如表2-5所示。

表2-5 赋值运算符

2.2.8 位运算符

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

表2-6 位运算符

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


     <?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);

打印结果为: kKWrYkWS915vInu7VoHb0J3Oz66m/U42SUvO9m3Nr6ZjY9gi5RObe4QKChI0RcNF


     0
     -1

点击中间区域
呼出菜单
上一章
目录
下一章
×