PHP 7从入门到精通(视频教学版)
上QQ阅读APP看书,第一时间看更新

3.7 运算符

PHP包含多种类型的运算符,常见的有算术运算符、字符串运算符、赋值运算符、比较运算符和逻辑运算符等。

3.7.1 算术运算符

算术运算符是最简单、最常用的运算符。常见的算术运算符如表3-1所示。

表3-1 常见的算术运算符

算术运算符的用法如下面的实例所示。

【例3.16】(实例文件:ch03\3.16.php)

    <? php
      $a=13;             // 定义变量
      $b=2;
      echo $a."+".$b."=";
      echo $a+$b."<br />";  //使用加法运算符
      echo $a."-".$b."=";
      echo $a-$b."<br />";  //使用减法运算符
      echo $a."*".$b."=";
      echo $a*$b."<br />";  //使用乘法运算符
      echo $a."/".$b."=";
      echo $a/$b."<br />";  //使用除法运算符
      echo $a."%".$b."=";
      echo $a%$b."<br />";  //使用求余运算符
      echo $a."++"."=";
      echo $a++."<br />";  //使用累加运算符
      echo $a."--"."=";
      echo $a--."<br />";  //使用累减运算符
      ?>

本程序运行结果如图3-16所示。

图3-16 程序运行结果

提示

除了数值可以进行自增运算外,字符也可以进行自增运算操作。例如,b++,结果将等于c。

3.7.2 字符串运算符

字符串运算符是把两个字符串连接起来变成一个字符串的运算符,使用“.”来完成。如果变量是整型或浮点型,PHP也会自动把它们转换为字符串输出,如下面的实例所示。

【例3.17】(实例文件:ch03\3.17.php)

    <? php
     $a = "把两个字符串";          // 定义字符串变量
     $b = 10.25;
      echo $a."连接起来,".$b."天。"; // 把字符串连接后输出
    ?>

本程序运行结果如图3-17所示。

图3-17 程序运行结果

3.7.3 赋值运算符

赋值运算符的作用是把一定的数据值加载给特定变量。

赋值运算符的具体含义如表3-2所示。

表3-2 赋值运算符的含义

例如,$a-=$b等价于$a=$a-$b,其他赋值运算符与之类似。从表3-2可以看出,赋值运算符可以使程序更加简练,从而提高执行效率。

3.7.4 比较运算符

比较运算符用来比较两端数据值的大小。比较运算符的具体含义如表3-3所示。

表3-3 比较运算符的含义

其中,“===”和“! ==”需要特别注意一下。$b===$c表示$b和$c不只是数值上相等,而且两者的类型也一样;$b! ==$c表示$b和$c有可能是数值不等,也可能是类型不同。

【例3.18】(实例文件:ch03\3.18.php)

    <? PHP
      $value="15";
      echo "\$value = \"$value\"";
      echo "<br />\$value==15: ";
      var_dump($value==15);          //结果为:bool(true)
      echo "<br />\$value==ture: ";
      var_dump($value==ture);        //结果为:bool(true)
      echo "<br />\$value! =null: ";
      var_dump($value! =null);        //结果为:bool(true)
      echo "<br />\$value==false: ";
      var_dump($value==false);       //结果为:bool(false)
      echo "<br />\$value === 100: ";
      var_dump($value===100);        //结果为:bool(false)
      echo "<br />\$value===true: ";
      var_dump($value===true);       //结果为:bool(false)
      echo "<br />(10/2.0 ! == 5): ";
      var_dump(10/2.0 ! ==5);         //结果为:bool(true)
    ?>

本程序运行结果如图3-18所示。

图3-18 程序运行结果

3.7.5 逻辑运算符

编程语言最重要的功能之一就是进行逻辑判断和运算。逻辑和、逻辑或、逻辑否都是逻辑运算符。逻辑运算符的含义如表3-4所示。

表3-4 逻辑运算的含义

【例3.19】(实例文件:ch03\3.19.php)

    <? php
      $a = true;
      $b = false;
      echo '$a && $b: ';
      var_dump($a && $b);        //使用逻辑与运算符,结果为:false
      echo '$a || $b: ';
      var_dump($a || $b);        //使用逻辑或运算符,结果为:true
      echo '! $a: ';
      var_dump(! $a );       //使用逻辑否运算符,结果为:false
    ?>

本程序运行结果如图3-19所示。

图3-19 程序运行结果

3.7.6 按位运算符

按位运算符是把整数按照“位”的单位来进行处理。按位运算符的含义如表3-5所示。

表3-5 按位运算符的含义

【例3.20】(实例文件:ch03\3.20.php)

    <? php
      $a = 7;                                 // 7的二进制代码是 111
      $b = 4;                                 // 4的二进制代码是 100
      echo '$a & $b = '  . ($a & $b) . '<br/>';    // 运算结果为二进制代码100,即4
      echo '$a | $b = '  . ($a | $b) . '<br/>';     // 运算结果为二进制代码111,即7
      echo '$a ^ $b = '  . ($a ^ $b) . '<br/>';     // 运算结果为二进制代码011,即3
    ?>

本程序运行结果如图3-20所示。

图3-20 程序运行结果

3.7.7 否定控制运算符

否定控制运算符用在“操作数”之前,用于对操作数值进行真假的判断。它包含一个逻辑否定运算符和一个按位否定运算符。否定控制运算符的含义如表3-6所示。

表3-6 否定控制运算符的含义

3.7.8 错误控制运算符

错误控制运算符用“@”来表示。在一个操作数之前使用,用来屏蔽错误信息的生成。

【例3.21】(实例文件:ch03\3.21.php)

    <? php
      $err = @(20 / 0) ;   // 如果不想显示这个错误,在表达式前加上“@”
    ?>

本程序运行结果如图3-21所示。

图3-21 程序运行结果

3.7.9 三元运算符

三元运算符作用在三个操作数之间。这样的操作符在PHP中只有一个,即“? :”,语法形式如下:

   (expr1)?(expr2):(expr3)

如果expr1成立,则执行expr2,否则执行expr3。

【例3.22】(实例文件:ch03\3.22.php)

    <? php
      $a = 5;
      $b = 6;
      echo ($a > $b) ? "大于成立" : "大于不成立"; echo "<br/>";   //大于不成立
      echo ($a < $b) ? "小于成立" : "小于不成立"; echo "<br/>";  //小于成立
    ?>

本程序运行结果如图3-22所示。

图3-22 程序运行结果

3.7.10 运算符的优先级和结合规则

运算符的优先级和结合其实与正常的数学运算符的规则十分相似。

● 加减乘除的先后顺序同数学运算中的完全一致。

● 对于括号,则先括号内再括号外。

● 对于赋值,则由右向左运行,即值依次从右边向左边的变量进行赋值。