Cũng như trong bất kỳ ngôn ngữ lập trình nào, PHP cũng có các toán tử, đó là các ký hiệu (đôi khi keywords ) được định nghĩa sẵn để thực hiện một số phép toán thường gặp trên một hoặc nhiều toán hạng.
Ví dụ, sử dụng biểu thức "4 + 5" thì bằng 9. Ở đây "4" và "5" được gọi là operands và "+" được gọi là một operator .
Chúng ta có các loại toán tử sau trong PHP −
Toán tử số học
Toán tử so sánh
Các Toán Tử Logic
Toán tử gán
Toán tử chuỗi
Toán tử mảng
Toán tử điều kiện (hay còn gọi là toán tử ba ngôi)
Chương này sẽ cung cấp cái nhìn tổng quan về cách bạn có thể sử dụng những toán tử này trong PHP. Trong các chương tiếp theo, chúng ta sẽ xem xét kỹ lưỡng từng toán tử và cách chúng hoạt động.
Chúng ta sử dụng các toán tử số học để thực hiện các phép toán như cộng, trừ, nhân, chia, v.v. trên các toán hạng đã cho. Các toán tử số học (không bao gồm các toán tử tăng và giảm) luôn hoạt động trên hai toán hạng, tuy nhiên loại của các toán hạng này phải giống nhau.
Bảng dưới đây nêu bật các toán tử số học được hỗ trợ bởi PHP. Giả sử biến "$a" chứa 42 và biến "$b" chứa 20 −
Operator | Description | Example |
---|---|---|
+ | Adds two operands | $a + $b = 62 |
- | Subtracts second operand from the first | $a - $b = 22 |
* | Multiply both operands | $a * $b = 840 |
/ | Divide numerator by de-numerator | $a / $b = 2.1 |
% | Modulus Operator and remainder of after an integer division | $a % $b = 2 |
++ | Increment operator, increases integer value by one | $a ++ = 43 |
-- | Decrement operator, decreases integer value by one | $a -- = 42 |
Bạn sẽ sử dụng các toán tử so sánh để so sánh hai toán hạng và tìm mối quan hệ giữa chúng. Chúng trả về một giá trị Boolean (hoặc true hoặc false) dựa trên kết quả của phép so sánh.
Bảng dưới đây nêu bật các toán tử so sánh được hỗ trợ bởi PHP. Giả sử biến $a giữ giá trị 10 và biến $b giữ giá trị 20, thì -
Operator | Description | Example |
---|---|---|
== | Checks if the value of two operands are equal or not, if yes then condition becomes true. | ($a == $b) is not true |
!= | Checks if the value of two operands are equal or not, if values are not equal then condition becomes true. | ($a != $b) is true |
> | Checks if the value of left operand is greater than the value of right operand, if yes then condition becomes true. | ($a > $b) is false |
< | Checks if the value of left operand is less than the value of right operand, if yes then condition becomes true. | ($a < $b) is true |
>= | Checks if the value of left operand is greater than or equal to the value of right operand, if yes then condition becomes true. | ($a >= $b) is false |
<= | Checks if the value of left operand is less than or equal to the value of right operand, if yes then condition becomes true. | ($a <= $b) is true |
Bạn có thể sử dụng các toán tử logic trong PHP để thực hiện các phép toán logic trên nhiều biểu thức cùng nhau. Các toán tử logic luôn trả về giá trị Boolean, hoặc là true hoặc là false.
Các toán tử logic thường được sử dụng với các câu lệnh điều kiện và vòng lặp để trả về quyết định theo các điều kiện Boolean. Bạn cũng có thể kết hợp chúng để thao tác với các giá trị Boolean khi xử lý các biểu thức phức tạp.
Bảng dưới đây nêu bật các toán tử logic được hỗ trợ bởi PHP.
Giả sử biến $a giữ giá trị 10 và biến $b giữ giá trị 20, thì −
Operator | Description | Example |
---|---|---|
and | Called Logical AND operator. If both the operands are true then condition becomes true. | (A and B) is true |
or | Called Logical OR Operator. If any of the two operands are non zero then condition becomes true. | (A or B) is true |
&& | Called Logical AND operator. If both the operands are non zero then condition becomes true. | (A && B) is true |
|| | Called Logical OR Operator. If any of the two operands are non zero then condition becomes true. | (A || B) is true |
! | Called Logical NOT Operator. Use to reverses the logical state of its operand. If a condition is true then Logical NOT operator will make false. | !(A && B) is false |
Bạn có thể sử dụng các toán tử gán trong PHP để gán hoặc cập nhật giá trị của một biến nhất định với một giá trị mới. Phía bên phải của toán tử gán chứa giá trị và phía bên trái của toán tử gán là biến mà giá trị sẽ được gán vào.
Kiểu dữ liệu của cả hai bên phải giống nhau, nếu không bạn sẽ gặp lỗi. Tính kết hợp của các toán tử gán là từ phải sang trái. PHP hỗ trợ hai loại toán tử gán −
Simple Assignment Operator − Đây là toán tử được sử dụng phổ biến nhất. Nó được dùng để gán giá trị cho một biến hoặc hằng số.
Compound Assignment Operators − Một sự kết hợp của toán tử gán (=) với các toán tử khác như +, *, /, v.v.
Bảng dưới đây nêu bật các toán tử gán mà PHP hỗ trợ −
Operator | Description | Example |
---|---|---|
= | Simple assignment operator, Assigns values from right side operands to left side operand | C = A + B will assign value of A + B into C |
+= | Add AND assignment operator, It adds right operand to the left operand and assign the result to left operand | C += A is equivalent to C = C + A |
-= | Subtract AND assignment operator, It subtracts right operand from the left operand and assign the result to left operand | C -= A is equivalent to C = C - A |
*= | Multiply AND assignment operator, It multiplies right operand with the left operand and assign the result to left operand | C *= A is equivalent to C = C * A |
/= | Divide AND assignment operator, It divides left operand with the right operand and assign the result to left operand | C /= A is equivalent to C = C / A |
%= | Modulus AND assignment operator, It takes modulus using two operands and assign the result to left operand | C %= A is equivalent to C = C % A |
Có hai toán tử trong PHP để làm việc với kiểu dữ liệu chuỗi −
Toán tử "." (dấu chấm) là toán tử nối chuỗi trong PHP. Nó kết hợp hai toán hạng chuỗi (các ký tự của chuỗi bên phải được nối vào chuỗi bên trái) và trả về một chuỗi mới.
PHP cũng có toán tử ".=" mà có thể được gọi là toán tử gán nối chuỗi. Nó cập nhật chuỗi bên trái bằng cách thêm các ký tự của toán hạng bên phải.
$third = $first . $second; $leftstring .= $rightstring;
PHP định nghĩa tập hợp các ký hiệu sau để sử dụng làm toán tử trên các kiểu dữ liệu mảng −
Symbol | Example | Name | Result |
---|---|---|---|
+ | $a + $b | Union | Union of $a and $b. |
== | $a == $b | Equality | TRUE if $a and $b have the same key/value pairs. |
=== | $a === $b | Identity | TRUE if $a and $b have the same key/value pairs in the same order and of the same types. |
!= | $a != $b | Inequality | TRUE if $a is not equal to $b. |
<> | $a <> $b | Inequality | TRUE if $a is not equal to $b. |
!== | $a !== $b | Non identity | TRUE if $a is not identical to $b. |
Có một toán tử nữa trong PHP được gọi là toán tử điều kiện. Nó cũng được biết đến với tên gọi là toán tử ba ngôi. Nó đầu tiên đánh giá một biểu thức để xác định giá trị đúng hoặc sai và sau đó thực hiện một trong hai câu lệnh được cho tùy thuộc vào kết quả của phép đánh giá.
Operator | Description | Example |
---|---|---|
? : | Conditional Expression | If Condition is true ? Then value X : Otherwise value Y |
Tất cả các toán tử mà chúng ta đã thảo luận ở trên có thể được phân loại thành các loại sau đây −
Các toán tử tiền tố đơn, đứng trước một toán hạng duy nhất.
Các toán tử nhị phân, là những toán tử nhận hai toán hạng và thực hiện nhiều phép toán số học và logic khác nhau.
Toán tử điều kiện (toán tử ba ngôi), lấy ba toán hạng và đánh giá biểu thức thứ hai hoặc thứ ba, tùy thuộc vào kết quả đánh giá của biểu thức đầu tiên.
Toán tử gán, gán một giá trị cho một biến.
Thứ tự ưu tiên của các toán tử quyết định thứ tự thực hiện các toán tử trong một biểu thức. Ví dụ, trong "2+6/3", phép chia 6/3 được thực hiện trước và sau đó phép cộng "2+2" được thực hiện vì toán tử chia "/" có độ ưu tiên cao hơn toán tử cộng "+".
Để buộc một toán tử nhất định được gọi trước các toán tử khác, nên sử dụng dấu ngoặc đơn. Trong ví dụ này, (2+6)/3 thực hiện phép cộng trước, sau đó là phép chia.
Một số toán tử có thể có cùng mức độ ưu tiên. Trong trường hợp đó, thứ tự kết hợp (hoặc từ trái sang phải hoặc từ phải sang trái) quyết định thứ tự thực hiện các phép toán. Các toán tử có cùng mức độ ưu tiên nhưng không kết hợp được không thể được sử dụng cạnh nhau.
Bảng dưới đây liệt kê các toán tử PHP theo thứ tự ưu tiên giảm dần −
Operators | Purpose |
---|---|
clone new | clone and new |
** | exponentiation |
++ -- | increment/decrement |
~(int) (float) (string) (array) (object) (bool) | casting |
instanceof | types |
! | logical |
* / | multiplication/division |
% | modulo |
+ - . | arithmetic and string |
<< >> | bitwise shift |
< <= > >= | comparison |
== != === !== <> <=> | comparison |
& | bitwise and/references |
^ | bitwise XOR |
| | bitwise OR |
&& | logical and |
|| | logical or |
?? | null coalescing |
? : | ternary |
= += -= *= **= /= .= %= &= |= ^= <<= >>= ??= | assignment operators |
yield from | yield from |
yield | yield |
and | logical |
xor | logical |
or | logical |