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 ?>
(学习笔记,理解肤浅。只供学习参考,如果不足敬请谅解)
 
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号