PHP中的運算符
PHP中運算符優先級和表達式
4.3.4.1 PHP的運算符
PHP的運算符大部分是從C語言中借用而來的,分爲以下幾類。
算術運算符: 、-、*、/、%、 、--
字符串運算符:.
賦值運算符:=、 =、-=、*=、/=、%=、.=
位運算符:& 、| 、^ 、<< 、>> 、~
邏輯運算符:&& (And)、|| (Or)、xor (Xor)、! (Not)
比較運算符:<、>、<=、>=、==、===、!=
其他運算符:$、&、@、->、=>、?:
下面(miàn)就詳細講解各類運算符。
1. 算術運算符号
算術運算符是用來處理四則運算的符号,這(zhè)是最簡單,也最常用的符号,尤其是數字的處理,幾乎都(dōu)會 使用到算術運算符号,其具體意義如表4-3所示。
程序4-16.php爲算術運算符的使用示例。
<!--文件4-16.php:算術運算符的應用--> <HTML> <HEAD> <TITLE>算術運算符的應用</TITLE> </HEAD> <BODY> <?php $a=10; $b=3; echo $a." ".$b."="; echo $a $b."<br>"; echo $a."-".$b."="; echo $a -$b."<br>"; echo $a."*".$b."="; echo $a*$b."<br>"; echo $a."/".$b."="; echo $a/$b."<br>"; echo $a."%".$b."="; echo $a%$b."<br>"; echo $a." ="; echo $a ."<br>"; $a=10; echo " ".$a."="; echo $a."<br>"; $a=10; echo $a."--="; echo $a--."<br>"; $a=10; echo "--".$a."="; echo --$a."<br>"; $c="b"; echo ""b" ="; $c ; echo """.$c.""<br>"; ?> </BODY> </HTML>
程序4-16.php的運行結果如圖4-12所示。
圖4-12 程序4-16.php的運行結
2. 字符串運算符
字符串運算符号隻有一個,就是英文的句号“.”。它可以將(jiāng)字符串連接起(qǐ)來,變成(chéng)合并的新字符串,也 可以將(jiāng)字符串與數字連接,這(zhè)時類型會自動轉換,具體用法如程序4-17.php所示。
<!--文件4-17.php:字符串運算符的應用--> <HTML> <HEAD> <TITLE>字符串運算符的應用</TITLE> </HEAD> <BODY> <?php $int1=2; $int2=0; $str1="PHP 5"; $str2="功能(néng)強大"; echo $str1.".".$int1.".".$int2.$str2." ==>我愛PHP 5"; ?> </BODY> </HTML>
程序4-17.php的運行結果如圖4-17所示。
圖4-13 程序4-17.php的運行結果
3. 賦值運算符
賦值運算符的具體意義如表4-4所示。
如,“$a =$b”等價于“$a=$a $b”,其他賦值運算的等價關系可依此類推。賦值運算可以讓程序更 精簡,增加程序的執行效率。
4. 位運算符
PHP中的位運算符有6個,常用于二進(jìn)制的運算場合,其具體含義如表4-5所示。
其中“~”是單目運算符,其他的都(dōu)是雙目運算符。與、或、異或和取反運算的運算規則如下:
0&0=0 0&1=0 1&0=0 1&1=1 (與:有假就假,都(dōu)真才真)
0|0=0 0|1=1 1|0=1 1|1=1 (或:有真就真,都(dōu)假才假)
0^0=0 0^1=1 1^0=1 1^1=0 (異或:相等爲假,不等爲真)
~0=1 ~1=0
5. 邏輯運算符
邏輯運算通常用來測試值爲真還(hái)是假。邏輯運算經(jīng)常用在條件判斷和循環處理中,在條件判斷中用來判 斷條件是否滿足在循環中用來判斷是否該結束循環或繼續執行循環體。邏輯運算符的具體含義如表4-6所示。
邏輯運算的真值表如表4-7所示。
6. 比較運算符
比較運算符和邏輯運算的用法差不多,通過(guò)比較大小來測試值爲真還(hái)是假,經(jīng)常用在條件判斷和循環處 理中,在條件判斷中用來判斷條件是否滿足,在循環中用來判斷是否該結束循環或繼續執行循環體。比較運算 符的具體含義如表4-8所示。
提示
7. 其他運算符
除了上述的運算符号之外,還(hái)有一些難以歸類的、用于其他用途的運算符,其具體含義如表4-9所示。
其中比較特殊的是三目運算符“?:”,例如:
(expr1) ? (expr2) : (expr3);
表示如果expr1的運算結果爲true,則執行expr2;否則執行expr3。實際上它與if...else語句類似,但可 以讓程序更爲精簡和高。
此外,還(hái)有用于新對(duì)象的定義符new、用于數組下标引用的方括号“[]”、表示結合性的大括 号“{}”等。
4.3.4.2 運算符的優先級與結合性
運算符的優先級指定了兩(liǎng)個表達式綁定得有多“緊密”。例如,表達式1 5*3的結果是16而不是18,這(zhè) 是因爲乘号(“*”)的優先級比加号(“ ”)高。必要時可以用括号來強制改變優先級,例如:(1 5)*3 的值爲18。如果運算符優先級相同,則使用從左到右的順序。
表4-10按優先級從高到低列出了所有的運算符。同一行中的運算符具有相同的優先級,此時它們的結合 方向(xiàng)決定求值順序。
4.3.4.3 表達式
表達式就是由操作數、操作符以及括号等所組成(chéng)的合法序列。簡單地說,PHP中的常量或變量通過(guò)運算 符連接後(hòu)就形成(chéng)了表達式,如“$a=1”爲一個表達式。表達式也有值,如表達式“$a=1”的值就是1。
根據表達式中運算符類型的不同又可以把表達式分爲:算術表達式、字符串連接表達式、賦值表達式、 位運算表達式、邏輯表達式、比較表達式等。
比較表達式和邏輯表達式是常見的表達式,這(zhè)種(zhǒng)表達式的值隻能(néng)是真或假,在程序的流程控制中,會大 量使用這(zhè)兩(liǎng)種(zhǒng)表達式。
運算符優先級指定了兩(liǎng)個表達式綁定得有多“緊密”。例如,表達式 1 + 5 * 3 的結果是 16 而不是 18 是因爲乘号(“*”)的優先級比加号(“+”)高。必要時可以用括号來強制改變優先級。例如:(1 + 5) * 3 的值爲 18。
如果運算符優先級相同,那運算符的結合方向(xiàng)決定了該如何運算。例如,"-"是左聯的,那麼(me) 1 - 2 - 3 就等同于 (1 - 2) - 3 并且結果是 -4. 另外一方面(miàn),"="是右聯的,所以 $a = $b = $c 等同于 $a = ($b = $c)。
沒(méi)有結合的相同優先級的運算符不能(néng)連在一起(qǐ)使用,例如 1 < 2 > 1 在PHP是不合法的。但另外一方面(miàn)表達式 1 <= 1 == 1 是合法的, 因爲 == 的優先級低于 <=。
括号的使用,哪怕在不是必要的場合下,通過(guò)括号的配對(duì)來明确标明運算順序,而非靠運算符優先級和結合性來決定,通常能(néng)夠增加代碼的可讀性。
老師整理得這(zhè)些知識,方便了我們的學(xué)習
老師截圖保存,清晰明了
通過(guò)老師的截圖讓我對(duì)于PHP的符号的表達式懂了好(hǎo)多
這(zhè)些語法基礎對(duì)于剛學(xué)習PHP的人來說是非常重要的,條理清晰,方便學(xué)習
算術運算符變簡單了