在做網(wǎng)站中,PHP運算符運算符是用來對變量、常量和數(shù)據(jù)進行計算的符號,它可以通過一或多個值(即表達式)產(chǎn)生另一個值(即整個結(jié)構(gòu)為一個表達式)。因此,用戶可以理解任何會返回一個值的結(jié)構(gòu)都是運算符,而那些沒有返回值的就不是運算符,如函數(shù)可以視為一個運算符,而echo命令就不是一個運算符。PHP提供了3種類型的運算符。
?一元運算符:只運算一個值,如!(取反運算符)或++(遞加運算符)。
?有限二元運算符:PHP支持的大多數(shù)運算符都是這種。
?三元運算符:?:。它應(yīng)該被用來根據(jù)一個表達式在另兩個表達式中選擇一個,而不是用來在兩個語句或者程序路線中選擇。注意,為了避免誤用,建議把整個三元表達式放在擴號里。
算術(shù)運算符
算術(shù)運算符用來處理四則運算的符號,在數(shù)學(xué)計算中應(yīng)用比較多。常用算術(shù)運算符如下表所示。
賦值運算符
基本的賦值運算符是=。一般用戶會把=符號誤解為“等于”,其實不是的。它實際上意味著把右邊表達式的值賦給左邊的運算數(shù)。賦值運算表達式的值也就是所賦的值。也就是說,“$a = 3”的值是3。這樣就可以做一些小技巧,如:<?php$a = ($b = 4) + 5;?>在上面示例中,變量$a的值為9,而變量$b的值就成了4。
在基本賦值運算符之外,還有適合于所有二元算術(shù)、數(shù)組集合和字符串運算符的組合運算符(如下表所示),這樣可以在一個表達式中使用它的值并把表達式的結(jié)果賦給它。
字符串運算符
有兩個字符串運算符。一個是連接運算符(.),它返回其左右參數(shù)連接后的字符串。另一個是連接賦值運算符(.=),它將右邊參數(shù)附加到左邊的參數(shù)后。
如:<?php$a = "Hello ";$b = $a . "World!"; //$b ="Hello World!"$a = "Hello ";$a .= "World!"; //$a = "Hello World!"?>
位運算符
位運算符允許對整型數(shù)中指定的位進行求值和操作。如果左右參數(shù)都是字符串,則位運算符將操作字符的ASCII值。在PHP中位運算符說明如下表所示:
如果比較一個整數(shù)和字符串,則字符串會被轉(zhuǎn)換為整數(shù)。如果比較兩個數(shù)字字符串,則作為整數(shù)比較。此規(guī)則也適用于switch語句。
<?phpvar_dump(0 == "a"); // 0 == 0 -> truevar_dump("1" == "01"); // 1 == 1 -> truevar_dump("1" == "1e0"); // 1 == 1 -> true?>
邏輯運算符
邏輯運算符用來組合邏輯運算的結(jié)果,是程序設(shè)計中一組非常重要的運算符。PHP的邏輯運算符如下表所示:
例如,下面的foo()函數(shù)不會被調(diào)用,因為它們被運算符“短路”了。
<?php$a = (false && foo());$b = (true ||foo());$c = (false and foo());$d = (true or foo());?>
錯誤控制運算符
PHP支持錯誤控制運算符:@。當將其放置在一個PHP表達式之前,該表達式可能產(chǎn)生的任何錯誤信息都被忽略。如果激活track-errors特性,表達式所產(chǎn)生的任何錯誤信息都被存放在變量$php- errormsg中。此變量在每次出錯時都會被覆蓋,所以如果想用它的話就要盡早檢查。
如:<?php$a = 1 / 0;?>
運行上面代碼,則會產(chǎn)生一個異常,并在瀏覽器中呈現(xiàn)出來。如果避免錯誤信息顯示在瀏覽器中,則可以在表達式前面添加@運算符,實現(xiàn)代碼如下:
<?php$a = @(1 / 0);?>
注意:@運算符只對表達式有效。對初學(xué)者來說一個簡單的規(guī)則就是:如果能從某處得到值,就能在它前面加上@運算符。例如,可以把它放在變量、函數(shù)和include()調(diào)用、常量等之前。不能把它放在函數(shù)或類的定義之前,也不能用于條件結(jié)構(gòu)前。
運算符優(yōu)先級
運算符優(yōu)先級指定了兩個表達式綁定得有多緊密。例如,表達式1 + 5 * 3的結(jié)果是16,而不是18,因為乘號的優(yōu)先級比加號高。不過可以使用括號來強制改變優(yōu)先級。例如,(1 + 5) * 3的值為18。如果運算符優(yōu)先級相同,則使用從左到右的左聯(lián)順序。
PHP的運算符在運算中遵循的規(guī)則是:優(yōu)先級高的運算先執(zhí)行,優(yōu)先級低的操作后執(zhí)行,同一優(yōu)先級的操作按照從左到右的順序進行。PHP運算符優(yōu)先級如下表所示。