日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > php中運算符使用方法總結

php中運算符使用方法總結

來源:程序員人生   發布時間:2014-06-18 05:09:34 閱讀次數:2888次

算術運算符

1、算術運算符:+、-、*、/、%.

2、遞增/遞減運算符:如$a++,$a--,++$a,--$a.

實例代碼如下:

  1. $a=10; 
  2. $b=5; 
  3. $c=$a++; //先賦值,后自增.$c=$a,$a=$a+1 
  4. $d=$b--; //先賦值,后自減.$d=$b,$b=$a-1 
  5. echo '$a='.$a."||".'$c='.$c.'
    '
    //$a=11,$c=10 
  6. echo '$b='.$b."||".'$d='.$d.'
    '
    //$b=4,$d=5 
  7. ?> 
  8. $a=10; 
  9. $b=5; 
  10. $c=++$a//先自增,后賦值.$a=$a+1,$c=$a 
  11. $d=--$b//先自減,后賦值.$b=$a-1, $d=$b 
  12. echo '$a='.$a."||".'$c='.$c.'
    '
    //$a=11,$c=11 
  13. echo '$b='.$b."||".'$d='.$d.'
    '
    //$b=4,$d=4 
  14. ?> 

三元運算符

(expr1) ? (expr2) : (expr3);

解釋:如果條件“expr1”成立,則執行語句“expr2”,否則執行“expr3”.

以下語句的語法是正確的,它們以小解引號的方式忽略了第二或第三“元”:

實例代碼如下:

  1. $a>$b ? print "Yes" : ""
  2. $a>$b ? '': print 'No'

應該注意的是:在使用三元運算符時,建議使用print語句替代echo語句.注意下列一串語句的理解:

實例代碼如下:

  1. $str = $_GET['abc'] ? 'wangjinbo' : 'wjb'

這里不能理解為:當$str等于$_GET['abc']  時,賦值為 'wangjinbo'  否則賦值為 'wjb';因為一:判斷相等應該用==;因原二:三元算符的語法是如上所示:(expr1) ? (expr2) : (expr3),顯然上面的二元,三元'wangjinbo'或'wjb'不能單獨構成一個有意義的表達式;正確理解是:當$_GET['abc']為空(也就是否,PHP中'',null,0,undifine,都等效布爾值false)時,將$str賦值為'wangjinbo',否則賦值為'wjb';

邏輯運算符:

實例代碼如下:

  1. $a=10;$b=7; 
  2. if($a++>8 || $b++>7){ //$a++>8為真,$b++>7這個就不執行了 
  3. echo 'OK!'
  4. echo 'a='.$a.'b='.$b// 輸出OK,a=11,b=7 
  5. 改變一下 
  6. $a=10;$b=7; 
  7. if($a++>10 && $b++>7){ //$a++>8為假,$b++>7這個就不執行了 
  8. echo 'OK!'
  9. echo 'a='.$a.'b='.$b// a=11,b=7 

細節:and && 都表示邏輯與 ,他們的區別在什么地方?

主要體現在優先級上面,and 的優先級

實例代碼如下:

  1. and< = <&& 
  2. or < = < || 
  3. $a=false || true; //&& > = > and ;先比較false || true,再賦值 
  4. $b=false or true; //|| > = > or ;先賦值$b=false,再比較,所以結果是false 
  5. var_dump($a,$b); //bool(true) bool(false) 

位運算符

位移在 PHP 中是數學運算.向任何方向移出去的位都被丟棄.左移時右側以零填充,符號位被移走意味著正負號不被保留.右移時左側以符號位填充,意味著正負號被保留.要用括號確保想要的優先級.例如 $a & $b == true 先進行比較再進行按位與;而 ($a & $b) == true 則先進行按位與再進行比較.

要注意數據類型的轉換.如果左右參數都是字符串,則位運算符將對字符的 ASCII 值進行操作.

PHP的ini設定error_reporting 使用了按位的值,提供了關閉某個位的真實例子.要顯示除了提示級別之外的所有錯誤,php.ini 中是這樣用的:

E_ALL & ~E_NOTICE

具體運作方式是先取得 E_ALL 的值:

00000000000000000111011111111111

再取得 E_NOTICE 的值:

00000000000000000000000000001000

然后通過 ~ 將其取反:

11111111111111111111111111110111

最后再用按位與 AND(&)得到兩個值中都設定了(為 1)的位:

00000000000000000111011111110111

另外一個方法是用按位異或 XOR(^)來取得只在其中一個值中設定了的位:E_ALL ^ E_NOTICE

error_reporting 也可用來演示怎樣置位.只顯示錯誤和可恢復錯誤的方法是:E_ERROR | E_RECOVERABLE_ERROR

也就是將 E_ERROR

00000000000000000000000000000001和 E_RECOVERABLE_ERROR

00000000000000000001000000000000

用按位或 OR(|)運算符來取得在任何一個值中被置位的結果:

00000000000000000001000000000001

Example #1 整數的 AND,OR 和 XOR 位運算符

實例代碼如下:

  1. /* 
  2.  * Ignore the top section, 
  3.  * it is just formatting to make output clearer. 
  4.  */ 
  5. $format = '(%1$2d = %1$04b) = (%2$2d = %2$04b)' 
  6.         . ' %3$s (%4$2d = %4$04b)' . "n"
  7. echo <<
  8.  ---------     ---------  -- --------- 
  9.  result        value      op test 
  10.  ---------     ---------  -- --------- 
  11. EOH; 
  12.  
  13. /* 
  14.  * Here are the examples. 
  15.  */ 
  16. $values = array(0, 1, 2, 4, 8); 
  17. $test = 1 + 4; 
  18. echo "n Bitwise AND n"
  19. foreach ($values as $value) { 
  20.     $result = $value & $test
  21.     printf($format$result$value'&'$test); 
  22. echo "n Bitwise Inclusive OR n"
  23. foreach ($values as $value) { 
  24.     $result = $value | $test
  25.     printf($format$result$value'|'$test); 
  26. echo "n Bitwise Exclusive OR (XOR) n"
  27. foreach ($values as $value) { 
  28.     $result = $value ^ $test
  29.     printf($format$result$value'^'$test); 
  30. ?>  

以上例程會輸出:

 ---------     ---------  -- ---------
 result        value      op test
 ---------     ---------  -- ---------
 Bitwise AND
( 0 = 0000) = ( 0 = 0000) & ( 5 = 0101)
( 1 = 0001) = ( 1 = 0001) & ( 5 = 0101)
( 0 = 0000) = ( 2 = 0010) & ( 5 = 0101)
( 4 = 0100) = ( 4 = 0100) & ( 5 = 0101)
( 0 = 0000) = ( 8 = 1000) & ( 5 = 0101)
 Bitwise Inclusive OR
( 5 = 0101) = ( 0 = 0000) | ( 5 = 0101)
( 5 = 0101) = ( 1 = 0001) | ( 5 = 0101)
( 7 = 0111) = ( 2 = 0010) | ( 5 = 0101)
( 5 = 0101) = ( 4 = 0100) | ( 5 = 0101)
(13 = 1101) = ( 8 = 1000) | ( 5 = 0101)
 Bitwise Exclusive OR (XOR)
( 5 = 0101) = ( 0 = 0000) ^ ( 5 = 0101)
( 4 = 0100) = ( 1 = 0001) ^ ( 5 = 0101)
( 7 = 0111) = ( 2 = 0010) ^ ( 5 = 0101)
( 1 = 0001) = ( 4 = 0100) ^ ( 5 = 0101)
(13 = 1101) = ( 8 = 1000) ^ ( 5 = 0101)

比較運算符

如果比較一個數字和字符串或者比較涉及到數字內容的字符串,則字符串會被轉換為數值并且比較按照數值來進行.此規則也適用于 switch 語句.當用 === 或 !== 進行比較時則不進行類型轉換,因為此時類型和數值都要比對.

實例代碼如下:

  1. var_dump(0 == "a"); // 0 == 0 -> true 
  2. var_dump("1" == "01"); // 1 == 1 -> true 
  3. var_dump("10" == "1e1"); // 10 == 10 -> true 
  4. var_dump(100 == "1e2"); // 100 == 100 -> true 
  5. switch ("a") { 
  6. case 0: 
  7.     echo "0"
  8.     break
  9. case "a"// never reached because "a" is already matched with 0 
  10.     echo "a"
  11.     break
  12. ?> 

對于多種類型,比較運算符根據下表比較(按順序).

比較多種類型 運算數 1 類型 運算數 2 類型 結果 nullstring stringNULL 轉換為 "",進行數字或詞匯比較 boolnull 任何其它類型 轉換為 boolFALSE < TRUE object object 內置類可以定義自己的比較,不同類不能%

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 性做久久久久久免费观看欧美 | 二区av| 久月婷婷| 欧美中文字幕一区二区三区 | 亚洲成人av一区二区三区 | 亚洲成人精品在线 | 日韩中文字幕精品 | 国产精品呻吟久久av凹凸 | 成人97精品毛片免费看 | 精品少妇一区二区三区视频免付费 | 91精品国产色综合久久 | 久久高清 | 午夜久久| 欧美日韩不卡在线 | 亚洲欧美不卡 | 玖玖国产 | 黄网站在线免费 | 亚洲欧美日韩另类 | www.超碰97.com| 日韩电影免费观 | 亚洲一区二区成人 | 天天摸夜夜操 | 色一区二区三区四区 | 免费a级 | 成人欧美一区二区 | 国产成人精品久久久 | 国产激情在线观看视频 | 国产毛片久久久久久国产毛片 | 一区二区三区在线视频播放 | 中文字幕国产 | 欧美成人精品一区二区 | 国产欧美日韩综合精品 | 国产精品不卡一区 | 欧美日韩黄 | 天天艹天天干天天 | 国产精品大全 | 国产 日韩 欧美 一区 | www啪啪| 精品国产1区 | 在线播放一区二区三区 | 九九热久久这里只有精品 |