首頁 >後端開發 >php教程 >有關php運算子的知識大全

有關php運算子的知識大全

高洛峰
高洛峰原創
2016-11-30 13:19:491570瀏覽

看似簡單的東西,在實際運用中,還是很有趣的 

算術運算子 
運算子名稱結果 
$a + $b 加法$a 和$b 的和 
$a - $b 減法$a 和$b 的差 
$a * $b 乘法$a 和$b 的積 
$a / $b 除法$a 除以$b 的商 
$a % $b 取模$a 除以$b 的餘數 
$a % $b 取模$a 除以$b 的餘數遞增/遞減運算子 
運算子名稱結果 
++$a  前加$a 的值加一,然後進行操作 
$a++ 後加$a 的值先操作,後加一 
--$a  $a 的值減一,然後進行操作 
$a--   後減$a 的值先進行操作,後減一 
實例: 
複製代碼 代碼如下:
echo $a=5+”5th ”; //輸出:10 
echo 10%3; //輸出:1 
echo 10+ $a++; //輸出:20 
echo 5- --$a; //輸出:-5 
?> 



比較運算子 
運算子名稱結果 
$a == $b 等於TRUE,如果$a等於$b 
$a === $b 全等TRUE,如果$a等於$b,且它們的型別也相同 
$a != $b 不等TRUE,如果$a不等於$b 
$a $b 不等TRUE,如果$a不等於$b 
$a !== $b 非全等TRUE,若$ a不等於$b,或它們的類型不同 
$a $a > $b 大於TRUE,如果$a嚴格$b 
$a $a >= $b 大於等於TRUE,如果$a 大於或等於$b 
另一個條件運算子是「 ? : 」(或三元)運算子。
實例: 
複製程式碼 程式碼如下:
var_dump(0=="a"); //輸出:bool(true) 
var_dump(0=="00"); //輸出:bool(true ) 
var_dump(0==="00"); //輸出:bool(false) 
var_dump(0"abc"); //輸出:bool(false) 
var_dump(0!=="01" ); //輸出:bool(true) 
$a=10; 
$b=20; 
$str=$a>$b? "true":"false"; 
echo $str; //輸出:false
?> 

邏輯運算子 
運算子名稱結果 
$a 且 $b 邏輯與TRUE,若$a 與$b 皆為TRUE。 
$a or $b 邏輯或 TRUE,如果 $a 或 $b 任一為TRUE。 
$a xor $b 異或 TRUE,如果 $a 和 $b 不同時 
! $a 邏輯非 TRUE,如果 $a 不為 TRUE。 
$a && $b 邏輯與 TRUE,若 $a 與 $b 皆為TRUE。 
$a || $b 邏輯或 TRUE,如果 $a 或 $b 任一為TRUE。 
其中and與&& 、or與||是同一邏輯運算子的兩種寫法。 
邏輯與和邏輯或 都是短路運算子。遇到下列邏輯運算式時,PHP解釋程式將不會計算右邊的運算式: 
複製程式碼 程式碼如下:
$a=10; 
if(false && (++$a));
echo $a; //輸出:10 
$b=10; 
if(true or (++$b)); 
echo $b; //輸出:10 
?>

位元運算子符允許對整數數中指定的位元進行置位。如果左右參數都是字串,則位元運算子將操作字元的 ASCII 值。 
表達式 名稱 結果 
$a & $b 按位與 將把 $a 與 $b 中都為 1 的位元設為 1。 
$a | $b 按位或 將把 $a 或 $b 中為 1 的位元設為 1。 
$a ^ $b 按位異或 將把 $a 和 $b 中不同的位元設為 1。 
~ $a 位元非 將 $a 中為 0 的位元設為 1,反之亦然。 
$a $a >> $b 右移 將 $a 中的位元向右移動 $b 次(每一次 移動都表示「除以 2」)。 
其他運算子 
字串運算子 
有兩個字串運算子。第一個是連接運算子(“.”),它會傳回其左右參數連接後的字串。第二個是連接賦值運算子(“.=”),它將右邊參數附加到左邊的參數後。
錯誤抑制運算子 
在最常見的資料庫連線與檔案建立作業或出現除0等異常時,可以用@符號來抑制函數錯誤訊息輸出到瀏覽器端$a=@(5/0) 
外部指令執行 
使用``來執行外部系統指令,注意不是單引號,是ESC下面那個按鍵 
複製程式碼 程式碼如下:
$out=`dir c:`; 
print_r($out); 
? >//不建議使用 

實例: 
複製程式碼 程式碼如下:
$a="hello"; 
$a.=" world! "; //等同於:$a=$a." world!"; 
echo $a; //輸出:hello world! 
$m = 3; 🎜$m += 5; //等同於:$m=$m+5; 
echo $m; //輸出:8 
$c = ($b = 4) + 5; 
echo $c; //輸出:9 
?>

運算子優先權 
下表從低到高列出了運算子的優先權。
結合方向運算子 
左, 
左or 
左xor 
左and 
右print 
右= += -= *= /= .= %= &= |= ^ ~= 左|| 
左&& 
結合方向運算子 
左| 
左^ 
左左左& 
無== != === !== 
無無== != === !== 
無無== !=== 
左+ - . 
左* / % 
右! ~ ++ -- (int) (float) (string) (array) (object) @ 
右[ 

無new 🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn