一、算術運算子
- (加) $a $b
- -(減) $a - $b
- *(乘) $a * $b
- /(除) $a / $b
- %(取餘) $a % $b
-
複製程式碼
二、字串運算子
三、賦值運算子
1.簡單賦值運算子
2、複合賦值運算子
- = $a = $b 等價於$a = $a $b
- -= $a -= $b 等價於$a = $a - $b
- *= $a *= $b 等價於$a = $a * $b
- / $a /= $b 等價於$a = $a / $b
- %= $a %= $b 等價於$a = $a % $b
- .= $a .= $b 等價於$a = $a . $b
-
複製代碼
3、前置遞增遞減運算與後置遞增遞減運算
- $a $a本身的值沒有變,但是整個表達式的值將變成$a 1
- $a $a本身的值改變了,$a先被$a = $a 1,然後再回傳$a 1
- $a-- $a本身的值沒有改變,但是整個表達式的值將變成$a - 1
- --$a $ a本身的值改變了,$a先被$a = $a - 1,然後再回傳$a 1
-
複製程式碼
4、引用操作符
引用運算符&可以在關聯賦值中使用。通常,在講一個變數的值賦給另一個變數的時候,先產生元變數的副本,然後再將它保存在記憶體的其他地方。例如:
複製程式碼
上例中,第一行程式碼是給$a賦值;第二行程式碼是先產生$a的一個副本,然後再將它保存在$b中。如果隨後改變$a的值,$b的值將不會改變。在看下面的例子:-
-
-
-
$a = 5; $b = &$a; $a = 7; // $a and $b are now both 7
複製程式碼
注意:引用不是一個獨立的第二個指針,而是使用了原變數的指針,即$a和$b都指向了記憶體的相同位址。上例中,第二行就是$b引用的$a,當第三行$a的值改變時,引用過它的$b也跟著改變了。我們可以透過重置來打破這種引用關聯:-
-
unsert($a);
複製程式碼
注意:這個重置只是重置了$a,它不會改變$b(7)的值,unsert($a)只是破壞了$a和值7保存在記憶體中的關聯。可以把unsert($a)理解為對$a的註銷。
四、比較運算子
比較運算子傳回的是邏輯布林值:true或false。 -
-
-
-
- ==(等於)
- ===(恆定等於)
- !=(不等於)
- !==(不恆定等於)
- (不等於)
- >(大於)
>==(大於等於)
複製程式碼
五、邏輯運算子-
-
-
-
- !(非)
- &&(與)
- ||(或)
and(與) or(或) xor(異或) $a xor $b 如果$a或$b為true,則傳回true。如果$a和$b都是true或都是false,則傳回false。
複製程式碼
注意:and和or比&&和||的優先順序低。
六、位元運算子
位元運算子可以將一個整數變數當作一些列的位元(Bit,位元)來處理。位元操作符不常使用。 -
-
-
-
- &(位元與) $a & $b 將$a和$b的每一位進行「與」操作所得的結果
- |(位元或) $a | $b 將$a和$b的每一位進行「或」操作所得的結果
- ~(按位非) ~$a 將$a的每一位進行「非」操作所得的結果
^(位元異或) $a ^ $b 將$a和$b的每一位進行「異或」操作所得的結果 >>(右位移) $a >> $b 將$a右移$b位 複製程式碼七、其他操作符
- ,(逗號) 用來分割函數參數或其他列表項,該操作符經常被附帶(非獨立)地使用。
- new(初始化類別的實例)
- ->(存取類別的成員)
-
複製程式碼
1、三元運算子?:
- condition ? value if true : value if false
-
複製程式碼
複製程式碼
複製程式碼-
-
三元運算子可以被看做是 if else 的條件語句的簡寫。
2.錯誤抑制操作符
@(at符號)
錯誤抑制運算子@可以在任何表達式前面使用,即任何有值的或可以計算出值的表達式之前,例如:
$a = @(57 / 0);
複製程式碼
- 如果上例中並未使用錯誤抑制操作符@,那麼該行程式碼就會拋出除0警告,使用了@,該警告將被抑制,也就是不被拋出。
-
如果透過這種方法抑制了一些警告,一點點遇到警告,就需要透過我們事先寫好的處理錯誤的語句來處理。
如果已經啟用了php.ini中的track_errors特性,錯誤訊息將會被保存在全域變數$php_errormsg中。
3.執行操作符
``(一對反向單引號)執行操作符其實是一對操作符,是一對反向單引號。
- 複製程式碼
-
-
php將試著將反向單引號之間的指令當作伺服器端的指令來執行。表達式的值就是指令的執行結果。例如在unix系統中,可以使用:
$out = `ls -la`; echo ' ' . $out . ' ';
$out = `dir c:`; echo '
' . $out . ' ';
複製程式碼
-
- 以上兩種情況都會得到一個目錄列表並且將該列表保存在$out中,然後,再將該列表顯示在瀏覽器中或用其他方法來處理。
-
4.陣列操作符
-
注意:在下面語法說明中,$a和$b都不是普通標量值,而是數組類型
-
-
-
(聯合) $a $b 回傳一個包含了$a和$b中所有元素的陣列 ==(等價)$ == $b 如果$a和$b具有相同的鍵值對,則傳回true===(恆等) $a === $b 如果$a和$b具有相同的鍵值對以及相同的順序,則傳回true !=(非等價) $a != $b 如果$a和$b不是等價的,則回傳true(非等價) $a $b 如果$a和$b不是等價的,回傳true !==(非恆等) $ !== $b 如果$a和$b不是恆等的,回傳true
複製程式碼
-
- 5、型別運算子
-
instanceof(唯一的類型運算元),此操作符在物件導向程式設計中使用。
-
instanceof操作符允許檢查一個物件是否是特定類別的實例。例如:
-
-
-
-
class sampleClass(); $myObject = new sampleClass();if ($myObject instanceof sampleClass) { echo '🎜> echo ' myObject is an instance of sampleClass';
| }