一、什么是運算符
什么是運算符?運算符是告訴PHP做相關運算的標識符號。例如,你需要計算123乘以456等于多少,這時候就需要一個符號,告訴服務器,你需要做乘法運算。
PHP中的運算符有哪些?PHP運算符一般分為算術運算符、賦值運算符、比較運算符、三元運算符、邏輯運算符、字符串連接運算符、錯誤控制運算符。
任務
我們小時候學數學,首先學阿拉伯數字“1,2,3…”,然后就開始學習“1加1等于2”,那么在PHP中,加法算術運算符用啥表示呢?用“+”來表示。在右邊的編輯器中,輸入一條指令“$c = $a + $b;”。
二、PHP中的算術運算符
算術運算符主要是用于進行算術運算的,例如:加法運算、減法運算、乘法運算、除法運算。在PHP中的常用的算術運算符對應下表:
任務
考考服務器^_^,算個平均分唄!
在右邊編輯器中,輸入四條指令,如圖:
1、在第7行輸入第一條指令,用于計算總分;
$sum = $english+$math+$biological+$physical;
2、在第8行輸入第二條指令,用于計算平均分;
$avg = $sum / 4;
3、在第9行輸入第三條指令,計算數學比英語高幾分;
$x = $math - $english;
4、在第10行輸入第四條指令,學習下平方的計算方法。
$x2 = $english * $english;
計算結果如圖所示:
三、PHP中的賦值運算符
PHP的賦值運算符有兩種,分別是:
(1)“=”:把右邊表達式的值賦給左邊的運算數。它將右邊表達式值復制一份,交給左邊的運算數。換而言之,首先給左邊的運算數申請了一塊內存,然后把復制的值放到這個內存中。
(2)“&”:引用賦值,意味著兩個變量都指向同一個數據。它將使兩個變量共享一塊內存,如果這個內存存儲的數據變了,那么兩個變量的值都會發生變化。
任務
咱們對比一下兩個賦值運算符的區別吧?
在右邊編輯器中輸入條指令,
1、在第3行中輸入第一條指令:
$b = $a;
2、在第4行中輸入第二條指令:
$c = &$a;
如圖所示:
從運行結果中:
四、PHP中的比較運算符
比較運算符主要是用于進行比較運算的,例如:等于、全等、不等、大于、小于。在PHP中常用的比較運算符如下表:
任務
咱來試試比較運算符吧!
在右邊編輯器中,輸入11條指令,如圖所示:
分別是第4行,第6行,第8行,第10行,第12行,第14行,第18行,第20行,第22行,第24行,第26行。運行結果如下:
從運行結果中,我們可以發現全等和等于的區別,不等與非全等的區別。
五、PHP中的三元運算符
(“?:”)三元運算符也是一個比較運算符,對于表達式(expr1)?(expr2):(expr3),如果expr1的值為true,則此表達式的值為expr2,否則為expr3。
任務
看看三元運算符咋用吧!
在右邊編輯器中第3行輸入一條指令:
$b = $a >= 60 ? "及格": "不及格";
如下圖所示:

其expr1的作用是判斷$a值是否大于60,若大于60,則$b變量的值為expr2的值“及格”,若小于60,則$b變量的值為expr3的值“不及格”。運行結果如圖所示:

六、PHP中的邏輯運算符
邏輯運算符主用是進行邏輯運算的,例如:邏輯與、邏輯或、邏輯異或、邏輯非等,在PHP中常用的邏輯運算符如下表:(點擊看大圖)

我們可以從投票的角度來理解邏輯運算:
1、邏輯與:要求所有人都投票同意,才會通過某協議;
2、邏輯或:只要求一個人投票同意就行;
3、邏輯異或:只能有且只能有一個人投票同意;
4、邏輯非:某個人要反對,但是通過邏輯非,使其反對無效;
“與”和“或”有兩種不同形式運算符的原因是它們運算的優先級(就是運算的有限順序,比如我們小學的時候學習四則運算,加減乘除混合在一起啦,優先計算乘除,再計算加減)不同。
任務
我來試一試:大家來投票吧!
我們假設有A、B、C、D進行了投票,然后我們用邏輯運算符,來判定他們的投票是否能通過某些協議。在右邊編輯器中輸入六條指令,分別是第7行,第9行,第11行,第13行,第15行,第17行,如下圖所示:(點擊看大圖)

其中第7行,第9行,第11行需要括號括起來,因為這三個邏輯運算符的優先級沒有三元運算符高。運行結果如下:

七、PHP中的字符串連接運算符
字符串連接運算符是為了將兩個字符串進行連接,PHP中提供的字符串連接運算符有:
(1)連接運算符(“.”):它返回將右參數附加到左參數后面所得的字符串。
(2)連接賦值運算符(“.=”):它將右邊參數附加到左邊的參數后。
任務
兩種連接運算符區別在哪呢?
在右邊編輯器中輸入三條指令,
1、在第3行輸入第一條指令“$tip = $a.",歡迎您在慕課網學習PHP!";”
2、在第6行輸入第二條指令“$b .= ",道是無晴卻有晴";”
3、在第9行輸入第三條指令“$c = $c.",道是無晴卻有晴";”
如下圖所示:

從運行結果中:

我們可以看出連接賦值運算符在連接字符串的基礎上,還有賦值功能。此外,第6行的指令與第9行的指令效果相同,但前者代碼更簡潔。
八、PHP中的錯誤控制運算符
PHP中提供了一個錯誤控制運算符“@”,對于一些可能會在運行過程中出錯的表達式時,我們不希望出錯的時候給客戶顯示錯誤信息,這樣對用戶不友好。于是,可以將@放置在一個PHP表達式之前,該表達式可能產生的任何錯誤信息都被忽略掉;
如果激活了track_error(這個玩意在php.ini中設置)特性,表達式所產生的任何錯誤信息都被存放在變量$php_errormsg中,此變量在每次出錯時都會被覆蓋,所以如果想用它的話必須盡早檢查。
需要注意的是:錯誤控制前綴“@”不會屏蔽解析錯誤的信息,不能把它放在函數或類的定義之前,也不能用于條件結構例如if和foreach等。
任務
看看錯誤控制運算符的效果吧!
在右邊編輯器的第2行輸入一條指令“$conn = @mysql_connect("localhost","username","password");”,如圖所示:

在右邊編輯器的第2行輸入一條指令“$conn = @mysql_connect("localhost","username","password");”,如圖所示:

取模算術符有啥用呢?
假設我們要在一個考場安排了一場考試,對考生從1開始,都進行了編號,那么怎么讓服務器幫助我們計算考生在的位置呢,進而打印考場的考生對照表呢?在右邊編輯器里輸入兩條指令,如圖所示:

任務
我來試一試:
1、在第5行輸入第一條指令,用于計算在第幾排。
$line = ceil($no/$maxLine);
2、在第6行輸入第二條指令,使用取模算術符計算所在位置。
$row = $no%$maxLine?$no%$maxLine:$maxLine;
運行結果如下:
