Toán tử (operators) trong PHP
- 23-02-2023
- Toanngo92
- 0 Comments
Khái niệm toán tử trong PHP, toán tử kết hợp với toán hạng để tạo thành một biểu thức, cũng tương tự như các ngôn ngữ khác hay có nhiều loại toán tử khác nhau với mục đích riêng, sẽ được mô tả chi tiết ở bài viết này.
Mục lục
Toán tử số học (Arimetic Operators)
Các toán tử số học thực hiện các phép toán số học khác nhau bao gồm cộng, trừ, nhân chia, chia lấy dư như sau:
Toán tử | Tên | Mô tả |
+ | Cộng | Trả về tổng hai toán hạng |
– | Trừ | Trả về hiệu hai toán hạng |
* | Nhân | Trả về tích hiệu hai toán hạng |
/ | Chia | Trả về thương hai toán hạng |
% | Chia lấy dư | Trả về số dư của phép chia hai toán hạng (kiểu số nguyên – int) |
Ví dụ
<?php
$a = 3;
$b = 2;
$c = $a + $b;
echo "Addition of two numbers is: $c <br/>";
$c = $a - $b;
echo "Subtraction of numbers is: $c <br/>";
$c = $a * $b;
echo "Multiplication of two numbers is: $c <br/>";
$c = $a / $b;
echo "Division of two numbers is: $c <br/>";
$c = $a % $b;
echo "Modulus of numbers is: $c <br/>";
$c = $a++;
echo "Increment of number is: $c <br/>";
$c = $a--;
echo "Decrement of number is: $c <br/>";
// ouput:
// Addition of two numbers is: 5
// Subtraction of numbers is: 1
// Multiplication of two numbers is: 6
// Division of two numbers is: 1.5
// Modulus of numbers is: 1
// Increment of number is: 3
// Decrement of number is: 4
?>
Toán tử so sánh (Comparision Operators)
Toán tử so sánh giúp so sánh hai toán hạng, còn có tên gọi khác là toán tử quan hệ (relation operators), được liệt kê như sau:
Toán tử | Tên | Mô tả |
== | Bằng nhau | Trả về true nếu cả hai toán hạng đều bằng nhau |
=== | Giống nhau (bao gồm cả kiểu dữ liệu) | Trả về true nếu cả hai toán hạng đều bằng nhau và có cùng kiểu dữ liệu |
!= | Không bằng nhau | Trả về true nếu toán hạng thứ nhất không bằng toán hạng thứ hai |
<> | Không bằng nhau | Trả về true nếu toán hạng thứ nhất không bằng toán hạng thứ hai |
!== | Không giống nhau (bao gồm cả kiểu dữ liệu) | Trả về true nếu toán hạng thứ nhất không bằng toán hạng thứ hai hoặc chúng không cùng kiểu dữ liệu |
< | Nhỏ hơn | Trả về true nếu toán hạng đầu tiên nhỏ hơn toán hạng thứ hai |
<= | Nhỏ hơn hoặc bằng | Trả về true nếu toán hạng đầu tiên nhỏ hơn hoặc bằng toán hạng thứ hai |
> | Lớn hơn | Trả về true nếu toán hạng đầu tiên lớn hơn toán hạng thứ hai |
>= | Lớn hơn hoặc bằng | Trả về true nếu toán hạng đầu tiên lớn hơn hoặc bằng toán hạng thứ hai |
Ví dụ:
<?php
$a = 21;
$b = 20;
if ($a == $b) {
echo " a is equal to b<br/>";
} else {
echo " a is not equal to b<br/>";
}
if ($a > $b) {
echo "a is greater than b<br/>";
} else {
echo " a is not greater than b<br/>";
}
if ($a < $b) {
echo " a is less than b<br/>";
} else {
echo " a is not less than b<br/>";
}
if ($a != $b) {
echo " a is not equal to b<br/>";
} else {
echo " a is equal to b<br/>";
}
if ($a >= $b) {
echo "a is either greater than or equal to b<br/>";
} else {
echo " a is neither greater than nor equal to b<br/>";
}
if ($a <= $b) {
echo " a is either less than or equal to b<br/>";
} else {
echo "a is neither less than nor equal to b<br/>";
}
// output
//a is not equal to b
//a is greater than b
//a is not less than b
//a is not equal to b
//a is either greater than or equal to b
//a is neither less than nor equal to b
?>
Toán tử luận lý (Logical Operators)
Toán tử logic giúp kết hợp hoặc phủ định các biểu thức. PHP hỗ trợ các toán tử logic khác nhau như sau:
Toán tử | Tên | Mẫu | Mô tả |
AND (&&) | Toán tử logic và | expression1 && expression2 | Chỉ trả về true nếu cả hai biểu thức đều đúng |
OR (||) | Toán tử logic hoặc | expression1 || expression2 | Trả về true nếu bất kỳ một trong các biểu thức là true |
XOR | Toán tử 1 trong 2 | expression1 XOR expression2 | Trả về true nếu Biểu thức 1 hoặc Biểu thức 2 nhưng không phải cả hai |
! | Toán tử phủ định | !expression1 | Chỉ trả về true nếu điều kiện không đúng ( điều kiện trả ra false) |
Ví dụ:
<?php
$a = 127;
$b = 9;
if( $a > 10 && $b > 10 ) {
echo "a and b are greater than 10<br/>";
} else {
echo "a and b are not greater than 10<br/>";
}
// or
if( $a > 10 || $b > 10 ) {
echo "a or b are greater than 10<br/>";
} else {
echo "a or b are not greater than 10<br/>";
}
// not
if( !($a > 10) ) {
echo "a and b are greater than 10<br/>";
} else {
echo "a and b are not greater than 10<br/>";
}
// xor
if( $a > 10 xor $b > 10 ) {
echo "should return true if one of the conditions is true, but not both<br/>";
} else {
echo "should return false if one of the conditions is true, but not both else option<br/>";
}
// reassigned value
$b = 11;
if( $a > 10 xor $b > 10 ) {
echo "should return true if one of the conditions is true, but not both<br/>";
} else {
echo "should return false if one of the conditions is true, but not both else option<br/>";
}
// output
//a and b are not greater than 10
//a or b are greater than 10
//a and b are not greater than 10
//should return true if one of the conditions is true, but not both
//should return false if one of the conditions is true, but not both else option
?>
Toán tử gán
Toán tử gán được sử dụng để ghi giá trị cho biến. Bên cạnh toán tử gán chính được biểu thị bằng ký hiệu =, PHP cũng hỗ trợ các toán tử gán kết hợp.
+= và -= là ví dụ về các toán tử gán kết hợp thực hiện phép cộng và phép trừ kết hợp với phép gán tương ứng. Các toán tử kết hợp cũng có thể được sử dụng với các toán tử kết hợp mảng và chuỗi.
Biểu thức | Mô tả |
$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 | Nối chuỗi b vào a (không phải phép cộng) |
Ví dụ:
<?php
$a = 30;
$b = 207;
$c = $a + $b; /* Assignment operator */
echo "Addition Operation Result: $c <br/>";
/* Value of c becomes 30 + 207 = 237 */
$c += $a;
/* Value of c becomes 237 + 30 = 267 */
echo "Add AND Assignment Operation Result: $c <br/>";
$c -= $a; /* Value of c becomes 267 - 30 = 237 */
echo "Subtract AND Assignment Operation Result: $c <br/>";
$c *= $a; /* Value of c becomes 237 * 30 = 7110 */
echo "Multiply AND Assignment Operation Result: $c <br/>";
$c /= $a; /* Value of c becomes 7110 / 30 = 237 */
echo "Division AND Assignment Operation Result: $c <br/>";
$c %= $a; /* Value of c becomes 237 % 30 = 27 */
echo "Modulus AND Assignment Operation Result: $c <br/>";
//output:
// Addition Operation Result: 237
// Add AND Assignment Operation Result: 267
// Subtract AND Assignment Operation Result: 237
// Multiply AND Assignment Operation Result: 7110
// Division AND Assignment Operation Result: 237
// Modulus AND Assignment Operation Result: 27
Toán tử điều kiện (Conditional Operator)
Toán tử điều kiện được sử dụng để thực hiện các hoạt động khác nhau dựa trên các điều kiện khác nhau. PHP hỗ trợ toán tử điều kiện ? : (toán tử 3 ngôi, hoặc anh em chúng ta gọi là if else một dòng cho dễ hi
ểu). Trước tiên, nó được sử dụng để đánh giá một biểu thức cho giá trị TRUE hoặc FALSE, sau đó, thực hiện một trong hai câu lệnh đã cho tùy thuộc vào kết quả đánh giá. Nó thường được sử dụng để đánh giá hoạt động if-then-else.
Ví dụ:
<?php
$a = 10;
$b = 207;
/* Ternary condition: if a is greater than b, assign a to $result, otherwise assign b */
$result = ($a > $b) ? $a : $b;
echo $result;
// output: 207
Danh mục toán tử
Trên cơ sở số lượng toán hạng được sử dụng, và đặc tính các toán tử, chúng ta có thể chia danh mục toán tử thành bảng như sau:
Danh mục toán tử | Mô tả |
Toán tử tiền tố đơn vị | Nằm trước một toán hạng |
Toán tử nhị phân | Lấy hai toán hạng và thực hiện các phép tính số học khác nhau |
Toán tử điều kiện hoặc ba ngôi | Lấy ba toán hạng. Dựa trên cách đầu tiên biểu thức toán tử được ước tính toán, biểu thức thứ hai hoặc thứ ba sẽ được ước tính toán |
Toán tử gán | Gán một giá trị cho một biến |
Thứ tự ưu tiên toán tử
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. Một số toán tử được ưu tiên hơn những toán tử khác. Để tìm hiểu thêm về thứ tự ưu tiên giữa các toán tử, nếu chưa hiểu về khái niệm này, các bạn nên ôn tập lại ngôn ngữ C/C++ hoặc xem bài viết Các toán tử và biểu thức trong C.