官术网_书友最值得收藏!

2.7 運算符

運算符是用來對變量、常量或數據進行算術運算或邏輯運算的符號。PHP中主要有算術運算符、字符串運算符、賦值運算符、邏輯運算符、比較運算符、錯誤控制運算符、三元運算符和位運算符等多種運算符。

2.7.1 算術運算符

算術運算符就是處理算術運算的符號,即對數字數據進行加、減、乘、除和取余等運算。算術運算符是數字處理中應用最多的、最常用的運算符。PHP中的算術運算符見表2-4。

表2-4 PHP中的算術運算符

049-2-i

說明:1. 使用“%”取余時,如果被除數($a)是負數,那么得到的結果也是負數。

2. 遞增、遞減運算符有兩種使用方法,一種是將運算符放在變量后面,即先返回變量的當前值,再將變量的當前值增加或減少1;另一種是將運算符放在變量前面,即先將變量增加或減少1,再賦值給原變量。

【實例2-29(31_Arithmetic_Operator.php)】 使用算術運算符對四個值分別為10、5、3、2的變量進行算術運算。實例代碼如下。

<?php
  //設置編碼格式,正確顯示中文
  header("content-Type: text/html; charset=gb2312");
  $num1 = 10;  //定義一個整型變量
  $num2 = 5;   //定義一個整型變量
  $num3 = 3;   //定義一個整型變量
  $num4 = 2;   //定義一個整型變量
  //顯示結果
  echo '$num1 = '.$num1.', $num2 = '.$num2.', $num3 = '.$num3.', $num4 = '.
$num4.'<br/>';
  echo '$num1 +$num2 = '.($num1 +$num2).'<br/>';
  echo '$num1 - $num2 = '.($num1 - $num2).'<br/>';
  echo '$num3 * $num4 = '.($num3 * $num4).'<br/>';
  echo '$num1 / $num4 = '.($num1 / $num4).'<br/>';
  echo '$num1 % $num3 = '.($num1 % $num3).'<br/>';
  echo '$num1++= '.$num1++.'<br/>';
  echo '$num2--= '.$num2--.'<br/>';
  echo '++$num3 = '.++$num3.'<br/>';
  echo '--$num4 = '.--$num4;
?>

運行結果如圖2-29所示。

2d29

圖2-29 算術運算符

2.7.2 字符串運算符

字符串運算符的作用是將兩個字符串連接起來,并結合成一個新的字符串。PHP中字符串運算符只有一個,即英文句號“.”。

注意:與C語言和Java語言不同,PHP中的“+”只能作為算術運算符使用,不能作為字符串運算符。

【實例2-30(32_String_Operator.php)】 使用字符串運算符連接值為“字符串”和“運算符”的兩個字符串型變量,并輸出合成的新字符串。實例代碼如下。

<?php
  //設置編碼格式,正確顯示中文
  header("content-Type: text/html; charset=gb2312");
  $str1 = '字符串';  //定義一個字符串型變量
  $str2 = '運算符';  //定義一個字符串型變量
  //顯示結果
  echo '$str1 = '.$str1.', $str2 = '.$str2.'<br/>';
  echo '$str1.$str2 = '.($str1.$str2);
?>

運行結果如圖2-30所示。

2d30

圖2-30 字符串運算符

2.7.3 賦值運算符

賦值運算符的作用是將右邊的值賦值給左邊的變量。PHP中的賦值運算符見表2-5。

表2-5 PHP中的賦值運算符

051-i

【實例2-31(33_Assignment_Operator.php)】 使用賦值運算符為變量賦值,然后輸出賦值后的結果。實例代碼如下。

<?php
  //設置編碼格式,正確顯示中文
  header("content-Type: text/html; charset=gb2312");
  $num = 1;   //將1賦值給變量$num    
  echo '$num = '.$num.'<br/>';           //顯示結果
  $num += 1;  //將$num加1后賦值給$num
  echo '$num += 1的結果:'.$num.'<br/>';  //顯示結果
  $num -= 1;  //將$num減1后賦值給$num
  echo '$num -= 1的結果:'.$num.'<br/>';  //顯示結果
  $num *= 2;  //將$num乘2后賦值給$num
  echo '$num *= 2的結果:'.$num.'<br/>';  //顯示結果
  $num /= 2;  //將$num除2后賦值給$num
  echo '$num /= 2的結果:'.$num.'<br/>';  //顯示結果
  //將$num除2取余后賦值給$num
  $num %= 2;
  echo '$num %= 2的結果:'.$num.'<br/>';  //顯示結果
  $str = '賦值';          //定義一個字符串型變量
  echo '$str = '.$str.'<br/>';          //顯示結果
  //將$str連接運算符后賦值給$str
  $str .= '運算符';
  echo '$str .= \'運算符\'的結果:'.$str;  //顯示結果
?>

運行結果如圖2-31所示。

2d31

圖2-31 賦值運算符

2.7.4 邏輯運算符

邏輯運算符的作用是將多個邏輯命題連接成更復雜的邏輯命題,從而進行實現邏輯判斷,主要用在條件控制語句的判斷表達式中。PHP中的邏輯運算符見表2-6。

表2-6 PHP中的邏輯運算符

052-i

注意:&&與and、||與or雖然能夠進行同樣的邏輯運算,但是它們之間的優先級是不同的。

【實例2-32(34_Logical_Operator.php)】 使用邏輯運算符對true和false進行不同組合的邏輯判斷。實例代碼如下。

<?php
  //設置編碼格式,正確顯示中文
  header("content-Type: text/html; charset=gb2312");
  $boo1 = true;   //定義一個布爾型變量
  $boo2 = false;  //定義一個布爾型變量
  //顯示結果
  echo '$boo1 = '.var_export($boo1, true).', $boo2 = '.var_export($boo2, true).'<br/>';
  echo '$boo1 && $boo2 = '.var_export($boo1 && $boo2, true).'<br/>';
  echo '$boo1 && $boo1 = '.var_export($boo1 && $boo1, true).'<br/>';
  echo '$boo2 && $boo2 = '.var_export($boo2 && $boo2, true).'<br/>';
  echo '$boo1 || $boo2 = '.var_export($boo1 || $boo2, true).'<br/>';
  echo '$boo1 || $boo1 = '.var_export($boo1 || $boo1, true).'<br/>';
  echo '$boo2 || $boo2 = '.var_export($boo2 || $boo2, true).'<br/>';
  echo '$boo1 xor $boo2 = '.var_export($boo1 xor $boo2, true).'<br/>';
  echo '$boo1 xor $boo1 = '.var_export($boo1 xor $boo1, true).'<br/>';
  echo '$boo2 xor $boo2 = '.var_export($boo2 xor $boo2, true).'<br/>';
  echo '!$boo1 = '.var_export(!$boo1, true);
?>

運行結果如圖2-32所示。

2d32

圖2-32 邏輯運算符

2.7.5 比較運算符

比較運算符的作用是對變量或表達式的結果進行大小、真假等的比較。如果比較結果為真,則返回true;如果比較結果為假,則返回false。PHP中的比較運算符見表2-7。

表2-7 PHP的比較運算符

054-i

說明:恒等“===”表示變量不僅在數值上相等,而且數據類型也是一致的;非恒等“!==”表示變量數值或數據類型不同。

【實例2-33(35_Comparison_Operator.php)】 使用比較運算符比較值為3變量和不同數值之間的大小。實例代碼如下。

<?php
  //設置編碼格式,正確顯示中文
  header("content-Type: text/html; charset=gb2312");
  $num = 3;  //定義一個整型變量
  //顯示結果
  echo '$num = '.$num.'<br/>';
  echo '$num < 4的結果:'.var_export($num < 4, true).'<br/>';
  echo '$num > 2的結果:'.var_export($num > 2, true).'<br/>';
  echo '$num <= 4的結果:'.var_export($num <= 4, true).'<br/>';
  echo '$num >= 2的結果:'.var_export($num >= 2, true).'<br/>';
  echo '$num == 3的結果:'.var_export($num == 3, true).'<br/>';
  echo '$num != 2的結果:'.var_export($num!= 2, true).'<br/>';
  echo '$num === 3的結果:'.var_export($num === 3, true).'<br/>';
  echo '$num !== \'3\'的結果:'.var_export($num !== '3', true);
?>

運行結果如圖2-33所示。

2d33

圖2-33 比較運算符

2.7.6 錯誤控制運算符

錯誤控制運算符是PHP中獨特的一種運算符,其作用是對程序中出現錯誤的表達式進行操作,即對錯誤信息進行屏蔽。在PHP中,在錯誤的表達式前面加上錯誤控制運算符“@”即可屏蔽錯誤信息。

注意:錯誤控制運算符只能屏蔽錯誤信息,不能真正地解決錯誤。因此錯誤控制運算符通常用來屏蔽一些不影響程序運行的非必要錯誤信息,而影響程序運行的重要錯誤信息不推薦使用。

【實例2-34(36_Error_Control_Operator.php)】 使用錯誤控制運算符屏蔽錯誤信息。實例代碼如下。

<?php
  //設置編碼格式,正確顯示中文
  header("content-Type: text/html; charset=gb2312");
  $num1 = (5 / 0);    //定義一個整型變量
  $num2 = @ (5 / 0);  //定義一個整型變量
?>

運行結果如圖2-34所示。

2d34

圖2-34 錯誤控制運算符

2.7.7 三元運算符

三元運算符,也稱三目運算符,其作用是根據一個表達式在另外兩個表達式中選擇一個來執行,語法格式如下。

表達式1?表達式2:表達式3;

如果表達式1的結果為真,執行表達式2;如果表達式1的結果為假,則執行表達式3。

說明:三元運算符最好放在括號中使用。

【實例2-35(37_Ternary_Operator.php)】 使用三元運算符分別返回“表達式1為真”和“表達式1為假”兩種不同結果。實例代碼如下。

<?php
  //設置編碼格式,正確顯示中文
  header("content-Type: text/html; charset=gb2312");
  //顯示結果
  echo (true?'表達式1為真':'表達式1為假');
  echo '<br/>';
  echo (false?'表達式1為真':'表達式1為假');
?>

運行結果如圖2-35所示。

2d35

圖2-35 三元運算符

2.7.8 位運算符

位運算符的作用是將二進制位從低位到高位對齊后進行運算。PHP中的位運算符見表2-8。

表2-8 PHP中的位運算符

056-i

【實例2-36(38_Bitwise_Operator.php)】 使用位運算符對值為13和10的整型變量按位進行運算。實例代碼如下。

<?php
  //設置編碼格式,正確顯示中文
  header("content-Type: text/html; charset=gb2312");
  $num1 = 13;  //定義一個整型變量
  $num2 = 11;  //定義一個整型變量
  //顯示結果
  echo '$num1 = '.$num1.', $num2 = '.$num2.'<br/>';
  echo '$num1 & $num2 = '.($num1 & $num2).'<br/>';
  echo '$num1 | $num2 = '.($num1 | $num2).'<br/>';
  echo '$num1 ^ $num2 = '.($num1 ^ $num2).'<br/>';
  echo '~$num1 = '.(~$num1).'<br/>';
  echo '$num1 << 1 = '.($num1 << 1).'<br/>';
  echo '$num1 >> 1 = '.($num1 >> 1);
?>

運行結果如圖2-36所示。

2d36

圖2-36 位運算符

說明:13的二進制原碼為0000 1101,11的二進制原碼為0000 1011,9的二進制原碼為0000 1001,15的二進制原碼為0000 1111,6的二進制原碼為0000 0110,-14的二進制補碼為1111 0010,26的二進制原碼為0001 1010。

2.7.9 運算符的優先級

表達式可能是由多個不同的運算符連接起來的,不同的運算符順序可能得出不同結果,甚至出現運算錯誤,因此必須按一定順序進行結合,才能保證運算的合理性和結果的正確性、唯一性。

運算符優先級就是在表達式中哪一個運算符先計算、哪一個運算符后計算,其遵循的規則如下。

(1)優先級高的操作先執行,優先級低的操作后執行。

(2)同一優先級的操作按照從左到右的順序執行。

(3)括號內的操作最先執行。

說明:由于括號的優先級最高,因此在運算符較多的表達式中,不妨多使用括號。

在PHP中,運算符的優先級見表2-9。

表2-9 運算符的優先級

057-i

說明:優先級別的數值越小,運算符的優先級越高。

主站蜘蛛池模板: 桃江县| 中牟县| 樟树市| 内乡县| 武山县| 封丘县| 延安市| 屏东县| 兴城市| 梨树县| 辰溪县| 宿州市| 双峰县| 西平县| 工布江达县| 东明县| 东源县| 什邡市| 宝丰县| 依安县| 萝北县| 河东区| 阿克陶县| 乌鲁木齐县| 视频| 满城县| 新干县| 井冈山市| 临朐县| 星子县| 密云县| 邵阳县| 伊通| 大方县| 新巴尔虎左旗| 措勤县| 郓城县| 翁牛特旗| 天全县| 铜山县| 昌宁县|