• PHP学习笔记 (3)运算符


    PHP学习笔记 (3)-运算符

    一、算术运算符
       1、运算符优先级:
        先算乘除后算加减,遇到括号先算括号内
        如果运算符优先级相同,则使用从左到右的左联顺序。
        从高到低列出了运算符的优先级。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序
      

     例子        名称     结果
     -$a        取反     $a 的负值。
     $a + $b   加法     $a 和 $b 的和。
     $a - $b    减法     $a 和 $b 的差。
     $a * $b    乘法     $a 和 $b 的积。
     $a / $b    除法     $a 除以 $b 的商。
     $a % $b   取模     $a 除以 $b 的余数。

    <?php 
    $a=10;
    $b=20;
    echo -$a;        //取反   $a 的负值。              	-10
    echo "<br/>";
    
    echo $a+$b;     //加法   $a 和 $b 的和。      		30
    echo "<br/>";
    
    echo $a-$b;     //减法   $a 和 $b 的差。      		-10
    echo "<br/>";
    
    echo $a*$b;     //乘法   $a 和 $b 的积。       	   	200
    echo "<br/>";
    
    echo $a / $b;    //除法   $a 除以 $b 的商。         	0.5
    echo "<br/>";
    
    echo $a % $b;    //取模   $a 除以 $b 的余数。   	10
    echo "<br/>";
    ?>
    


    二、赋值运算符
        基本的赋值运算符是“=”。一开始可能会以为它是“等于”,其实不是的;它实际上是把右边表达式的值赋给左边的运算数。 
        

    <?php 
    $a=10;
    $b=20;
    echo $a += $b;     //等同于 $a = $a + $b    10+20=30
    echo "<br/>";
    
    echo $a -= $b;    //等同于$a = $a - $b      30-20=10
    echo "<br/>";
    
    echo $a *= $b;     //等同于$a = $a * $b     10*20=200
    echo "<br/>";
    
    echo $a /= $b;     //等同于$a = $a / $b    200/20=10
    echo "<br/>";
    
    echo $a %= $b;     //等同于$a = $a % $b    10%20=10
    echo "<br/>";
    
    //See the String Operators page 
    echo $a .= $b;     //等同于$a = $a . $b     10.20=1020
    echo "<br/>";
    
    $a=true;
    $b=false;
    //See the Bitwise Operators page  
    echo $a &= $b;     //等同于$a = $a & $b      0      true&false=false
    echo "<br/>";
    
    echo $a |= $b;     //等同于$a = $a | $b      0      false|false=false
    echo "<br/>";
    
    echo $a ^= $b;     //等同于$a = $a ^ $b      0      false^false=false
    echo "<br/>";
    
    $a=1;
    $b=2;
    echo $a <<= $b;     //等同于$a = $a << $b       1<<2=4
    echo "<br/>";
    
    echo $a >>= $b;     //等同于$a = $a >> $b       4>>2=1
    echo "<br/>";
    ?>
    

        
        
        

    三、比较运算符
       比较运算就是两个值进行比较,体现两个数之间的关系。
          例子                   名称              结果 
       $a == $b      等于 TRUE,   如果 $a 等于 $b。 
       $a === $b   全等 TRUE,   如果 $a 等于 $b,并且它们的类型也相同。 
       $a != $b    不等 TRUE,   如果 $a 不等于 $b。 
       $a <> $b    不等 TRUE,    如果 $a 不等于 $b。 
       $a !== $b   非全等 TRUE,   如果 $a 不等于 $b,或者它们的类型不同。 
       $a < $b    小与 TRUE,    如果 $a 严格小于 $b。 
       $a > $b    大于 TRUE,    如果 $a 严格 $b。 
       $a <= $b   小于等于 TRUE,   如果 $a 小于或者等于 $b。 
       $a >= $b     大于等于 TRUE,   如果 $a 大于或者等于 $b。

    <?php 
    $a=10;
    $b=10;
    echo $a== $b;      //$a==$b吗?     10==10  返回1   True
    echo "<br/>";
    
    echo $a === $b;    //$a===$b吗?   10===10 返回1   True
    echo "<br/>";  
    
    $b="10";
    echo $a === $b;    //$a===$b吗?    10==="10" 返回空   false  比较两数据,不但比较数据值还有比较数据类型;
    echo "<br/>"; 
    
    $A=10;
    $B=20;
    echo $A!=$B;        //$a 不等于 $b     10!=20  返回1   True 
    echo "<br/>"; 
    
    echo $A<>$B;        //$a 不等于 $b     100<>20 返回1   True 
    echo "<br/>"; 
     
    echo $A!==$B;        //$a 不等于 $b,或者它们的类型不同。10!==20  返回1   True
    echo "<br/>"; 
    
    $C="10";
    echo $A!==$C;        //非全等 $a 不等于 $b,或者它们的类型不同。10!=="10" 返回空   false
    echo "<br/>"; 
    
    echo $A<$B;        // $a 严格小于 $b   10<20 返回1   True
    echo "<br/>"; 
    
    echo $A>$B;        // $a 严格小于 $b   10>20 返回空   false
    echo "<br/>"; 
    
    echo $A<=$B;        // $a 小于或者等于 $b   10<=20 返回1   True
    echo "<br/>"; 
    
    echo $A>=$B;        // $a 大于或者等于 $b   10>=20 返回空   false
    echo "<br/>"; 
    ?>
    


    四、逻辑运算符
             例子                 名称                  结果
      $a and $b   And(逻辑与)    TRUE,如果 $a 与 $b 都为 TRUE。
      $a or $b   Or(逻辑或)     TRUE,如果 $a 或 $b 任一为 TRUE。
      $a xor $b   Xor(逻辑异或)  TRUE,如果 $a 或 $b 任一为 TRUE,但不同时是。
      ! $a             Not(逻辑非)        TRUE,  如果 $a 不为 TRUE。
      $a && $b   And(逻辑与)   TRUE,如果 $a 与 $b 都为 TRUE。
      $a || $b   Or(逻辑或)     TRUE,如果 $a 或 $b 任一为 TRUE。

    <?php 
    $a=true;
    $b=false; 
    
    echo "And(逻辑与)";     //TRUE,如果 $a 与 $b 都为 TRUE
    echo  $a and $b;		 //返回 空  false;
    
    echo "Or(逻辑或)";      //TRUE,如果 $a 与 $b 都为 TRUE
    echo  $a or  $b;		 //返回 1  TRUE;
    
    echo "Xor(逻辑异或)";   //TRUE,如果 $a 或 $b 任一为 TRUE,但不同时是
    echo  $a xor  $b;        //返回 1  TRUE;
    
    echo "Not(逻辑非)";    //TRUE,  如果 $a 不为 TRUE
    echo  !$a;               //返回 空  false;
    
    echo "And(逻辑与)";      //TRUE,如果 $a 与 $b 都为 TRUE
    echo  $a &&  $b;          //返回 空  false;
    
    echo "Or(逻辑或)";       //TRUE,如果 $a 或 $b 任一为 TRUE
    echo  $a ||  $b;           //返回 1  TRUE;
    ?>
    

    五、递增/递减运算符


    只操作变量的一种运算

    递增/递减运算符不影响布尔值。递减 NULL 值也没有效果,但是递增 NULL 的结果是 1。

     
    例子      名称     效果
     ++$a    前加    $a 的值加一,然后返回 $a。
     $a++    后加    返回 $a,然后将 $a 的值加一。
     --$a     前减     $a 的值减一, 然后返回 $a。 
     $a--     后减     返回 $a,然后将 $a 的值减一。

    <?php 
    
    $a=1; 
    echo "前加";     //$a 的值加一,然后返回 $a
    echo  ++$a;		 //显示值  2    
    
    $a=1;
    echo "后加";     //返回 $a,然后将 $a 的值加一
    echo  $a++;		 //显示值   1    
    
    $a=2;
    echo "前减";     //$a 的值减一, 然后返回 $a
    echo  --$a;		 //显示值  1    
    
    $a=2;
    echo "前减";     //$返回 $a,然后将 $a 的值减一
    echo  $a--;		 //显示值  2    
    ?>
    


    六、位运算符

     位运算符允许对整型数中指定的位进行置位。如果左右参数都是字符串,则位运算符将操作字符的 ASCII 值。

     在 32 位系统上不要右移超过 32 位。不要在结果可能超过 32 位的情况下左移。

      例子                  名称                               结果
     $a & $b     And(按位与)    将把 $a 和 $b 中都为 1 的位设为 1。
     $a | $b      Or(按位或)      将把 $a 或者 $b 中为 1 的位设为 1。
     $a ^ $b     Xor(按位异或)    将把 $a 和 $b 中不同的位设为 1。
     ~ $a      Not(按位非)    将 $a 中为 0 的位设为 1,反之亦然。
     $a << $b   Shift left(左移)    将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。
     $a >> $b   Shift right(右移)    将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。

    <?php 
    
    $a=1;  
    $b=1;
    echo "<br/>And(按位与)";    //将把 $a 和 $b 中都为 1 的位设为 1
    echo $a&$b;					 //显示值  1
    
    echo "<br/>Or(按位或)";    //将把 $a 或者 $b 中为 1 的位设为 1
    echo $a|$b;					 //显示值  1
    
    echo "<br/> Xor(按位异或)";//将把 $a 和 $b 中不同的位设为 1
    echo $a^$b;					 //显示值  0
    
    echo "<br/>Not(按位非)";    //将 $a 中为 0 的位设为 1,反之亦然
    echo ~$a;					 //显示值  -2
    
    echo "<br>Shift left(左移)";//将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)
    echo $a<<$b;				  //显示值  2
    
    echo "<br/>Shift right(右移)";//将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。
    echo $a>>$b;				   //显示值 0
    
    ?>
    

    (学习笔记,理解肤浅。只供学习参考,如果不足敬请谅解)


     

  • 相关阅读:
    ConCurrent并发包
    volitale最经典理解
    java中关于volatile的理解疑问?
    一直对zookeeper的应用和原理比较迷糊,今天看一篇文章,讲得很通透,分享如下(转)
    架构师成长之路
    rocketmq,zookeeper,redis分别持久化的方式
    rocketmq持久化方式
    源码主干分支开发四大模式
    HDU 4876 ZCC loves cards(暴力剪枝)
    webView用法小结
  • 原文地址:https://www.cnblogs.com/lhj588/p/2084754.html
Copyright © 2020-2023  润新知