Bài 9: Cách sử dụng Toán tử (Operator) trong PHP

“Hãy hòa nhã với những kẻ dở hơi. Ai biết được ngày sau bạn có thể phải làm việc cho một kẻ như vậy.”

Bill Gates

Microsoft

Trong bài học PHP này, bạn sẽ học sử dụng 8 loại toán tử để hoàn thành các công việc trong PHP.

Toán tử trong PHP
Toán tử trong PHP

Toán tử trong PHP là gì?

Các toán tử là các ký hiệu báo cho bộ xử lý PHP (PHP Processor) thực hiện các hành động nhất định.

Ví dụ: Ký hiệu cộng (+) là toán tử yêu cầu PHP cộng hai biến hoặc giá trị, trong khi ký hiệu lớn hơn (>) là toán tử báo cho PHP so sánh hai giá trị.

1. Toán tử số học (Arithmetic Operator) trong PHP

Các toán tử số học được sử dụng để thực hiện các phép toán số học phổ biến, chẳng hạn như cộng, trừ, nhân, chia v.v …

Đây là danh sách đầy đủ các toán tử số học của PHP:

Toán tửCách gọi tênVí dụKết quả
+Addition$x + $yTổng của $x và $y
-Subtraction$x - $yHiệu của $x và $y.
*Multiplication$x * $yTích của $x và $y.
/Division$x / $yThương của $x và $y
%Modulus$x % $ySố dư của phép chia $x cho $y

Ví dụ sau đây sẽ cho bạn thấy cách các toán tử số học này làm việc:

<?php
$x = 10;
$y = 4;
echo($x + $y); // Kết quả là: 14
echo($x - $y); // Kết quả là: 6
echo($x * $y); // Kết quả là: 40
echo($x / $y); // Kết quả là: 2.5
echo($x % $y); // Kết quả là: 2
?>

2. Toán tử gán (Assignment Operator) trong PHP

Các toán tử gán được sử dụng để gán giá trị cho các biến.:

Toán tửCách gọi tênVí dụTương tự như
=Assign$x = $y$x = $y
+=Add and assign$x += $y$x = $x + $y
-=Subtract and assign$x -= $y$x = $x - $y
*=Multiply and assign$x *= $y$x = $x * $y
/=Divide and assign quotient$x /= $y$x = $x / $y
%=Divide and assign modulus$x %= $y$x = $x % $y

Ví dụ sau đây sẽ cho bạn thấy các toán tử gán này đang hoạt động:

<?php
$x = 10;
echo $x; // Kết quả: 10
 
$x = 20;
$x += 30;
echo $x; // Kết quả: 50
 
$x = 50;
$x -= 20;
echo $x; // Kết quả: 30
 
$x = 5;
$x *= 25;
echo $x; // Kết quả: 125
 
$x = 50;
$x /= 10;
echo $x; // Kết quả: 5
 
$x = 100;
$x %= 15;
echo $x; // Kết quả: 10
?>

3. Toán tử so sánh (Comparison Operator) trong PHP

Các toán tử so sánh được sử dụng để so sánh hai giá trị theo kiểu ĐÚNG hoặc SAI (Kiểu Boolean)

Toán tửCách gọi tênVí dụKết quả
==Equal$x == $yTrue nếu $x bằng $y
===Identical$x === $yTrue nếu $x bằng $y, và cùng kiểu dữ liệu
!=Not equal$x != $yTrue nếu $x không bằng $y
<>Not equal$x <> $yTrue if $x không phải $y
!==Not identical$x !== $yTrue nếu $x không bằng $y, và khác cả kiểu dữ liệu
<Less than$x < $yTrue nếu $x nhỏ hơn $y
>Greater than$x > $yTrue nếu $x lớn hơn $y
>=Greater than or equal to$x >= $yTrue nếu $x lớn hơn hoặc bằng $y
<=Less than or equal to$x <= $yTrue nếu $x nhỏ hơn hoặc bằng $y

Ví dụ sau đây sẽ cho bạn thấy các toán tử so sánh này đang hoạt động:

<?php
$x = 25;
$y = 35;
$z = "25";
// Trả về kết quả và kiểu dữ liệu
var_dump($x == $z);  // Kết quả: boolean true
var_dump($x === $z); // Kết quả: boolean false
var_dump($x != $y);  // Kết quả: boolean true
var_dump($x !== $z); // Kết quả: boolean true
var_dump($x < $y);   // Kết quả: boolean true
var_dump($x > $y);   // Kết quả: boolean false
var_dump($x <= $y);  // Kết quả: boolean true
var_dump($x >= $y);  // Kết quả: boolean false
?>

4. Các toán tử tăng và giảm trong PHP

Các toán tử tăng (++) / giảm (–) được sử dụng để tăng / giảm giá trị của một biến.

Toán tửTên gọiCách hoạt động
++$xPre-incrementTăng $x thêm 1, sau đó trả về $x
$x++Post-incrementTrả về $x, sau đó mới tăng $x thêm 1
--$xPre-decrementGiảm $x đi 1, sau đó trả về $x
$x--Post-decrementTrả về $x, sau đó giảm $x đi 1

Ví dụ sau đây sẽ cho bạn thấy các toán tử tăng và giảm này đang hoạt động:

<?php
$x = 10;
echo ++$x; // Outputs: 11
echo $x;   // Outputs: 11
 
$x = 10;
echo $x++; // Outputs: 10
// Vì trả về kết quả rồi mới tăng $x lên 1 nên:
echo $x;   // Outputs: 11
 
$x = 10;
echo --$x; // Outputs: 9
echo $x;   // Outputs: 9
 
$x = 10;
echo $x--; // Outputs: 10
// Vì trả về kết quả rồi mới giảm $x đi 1 nên:
echo $x;   // Outputs: 9
?>

5. Toán tử Logic (Logical Operator) trong PHP

Các toán tử logic thường được sử dụng kết hợp trong các câu lệnh có điều kiện.

Toán tửTênVí dụKết quả
andAnd$x and $yTrue nếu cả $x và $y đúng
orOr$x or $yTrue nếu chỉ cần $x hoặc $y đúng
xorXor$x xor $yTrue nếu $x hoặc $y đúng, Nhưng không phải cả 2
&&And$x && $yTrue nếu $x và $y đều đúng
||Or$x || $yTrue nếu chỉ cần $x hoặc $y đúng
!Not!$xTrue nếu $x không đúng

Ví dụ sau đây sẽ cho bạn thấy các toán tử logic này hoạt động như thế nào:

<?php
$year = 2014;
// Năm nhuận chi hết cho 400 hoặc 4 nhưng không chia hết cho 100
if(($year % 400 == 0) || (($year % 100 != 0) && ($year % 4 == 0))){
    echo "$year là năm nhuận.";
} else{
    echo "$year không phải năm nhuận.";
}
?>

6. Toán tử chuỗi (String Operator) PHP

Có hai toán tử được thiết kế riêng dành cho chuỗi trong PHP.

Toán tửMô tảVí dụKết quả
.Nối chuỗi$strN . $str2Nối $str1 và $str2
.=Concatenation assignment$str1 .= $str2Ghép $str2 vào $str1

Ví dụ sau đây sẽ cho bạn thấy các toán tử chuỗi này hoạt động như thế nào:

<?php
$x = "Hello";
$y = " World!";
echo $x . $y; // Kết quả: Hello World!
 
$x .= $y;
echo $x; // Outputs: Hello World!
?>

Chính xác là toán tử .= sẽ ghép $x và $y sau đó lại gán chuỗi vừa ghép xong cho chuỗi $x.

7. Toán tử mảng (Array Operator) PHP

Các toán tử mảng được sử dụng để so sánh các mảng:

Toán tửTênVí dụKết quả
+Union$x + $yHợp nhất $x và $y tạo thành mảng mới
==Equality$x == $y
True nếu $xvà $y có cùng cặp key và value
===Identity$x === $yTrue nếu $x và $y giống key/value theo một thứ tự và cùng kiểu dữ liệu
!=Inequality$x != $yTrue nếu $x không bằng $y
<>Inequality$x <> $yTrue nếu $x không bằng $y
!==Non-identity$x !== $yTrue nếu $x không giống với $y

Ví dụ sau đây sẽ cho bạn thấy cách các toán tử mảng này hoạt động như thế nào:

<?php
$x = array("a" => "Red", "b" => "Green", "c" => "Blue");
$y = array("u" => "Yellow", "v" => "Orange", "w" => "Pink");
$z = $x + $y; // Hợp nhất $x và $y
var_dump($z);
var_dump($x == $y);   // Kết quả: boolean false
var_dump($x === $y);  // Kết quả: boolean false
var_dump($x != $y);   // Kết quả: boolean true
var_dump($x <> $y);   // Kết quả: boolean true
var_dump($x !== $y);  // Kết quả: boolean true
?>

8. ĐẶC BIỆT: Spaceship Operator trong phiên bản PHP 7

PHP 7 giới thiệu một Toán tử Spaceship mới (<=>) có thể được sử dụng để so sánh hai biểu thức. Nó còn được gọi là toán tử so sánh kết hợp.

Toán tử Spaceship trả về giá trị:

  • 0 nếu cả hai toán hạng đều bằng nhau
  • 1 nếu bên trái lớn hơn và
  • -1 nếu bên phải lớn hơn

Về cơ bản, Toán tử Spaceship cung cấp so sánh ba chiều như trong bảng sau:

Toán tử<=> Tương đương
$x < $y($x <=> $y) === -1
$x <= $y($x <=> $y) === -1 || ($x <=> $y) === 0
$x == $y($x <=> $y) === 0
$x != $y($x <=> $y) !== 0
$x >= $y($x <=> $y) === 1 || ($x <=> $y) === 0
$x > $y($x <=> $y) === 1

Ví dụ sau đây sẽ cho bạn thấy cách sử dụng toán tử Spaceship:

<?php
// Comparing Integers 
echo 1 <=> 1; // Kết quả: 0
echo 1 <=> 2; // Kết quả: -1
echo 2 <=> 1; // Kết quả: 1
 
// Comparing Floats
echo 1.5 <=> 1.5; // Kết quả: 0
echo 1.5 <=> 2.5; // Kết quả: -1
echo 2.5 <=> 1.5; // Kết quả: 1
 
// Comparing Strings
echo "x" <=> "x"; // Kết quả: 0
echo "x" <=> "y"; // Kết quả: -1
echo "y" <=> "x"; // Kết quả: 1
?>

Như bạn thấy. Nếu sử dụng toán tử thông thường thì chỉ trả về True hoặc False. Nhưng khi cần để thực hiện tiếp một công việc đặc thù nào đó thì toán tử Spaceship sẽ nhanh hơn.

Tổng kết

Như vậy là chúng ta đã tìm hiểu về 8 loại Toán tử trong PHP. Hãy ghi nhớ hoặc Bookmark lại để khi nào cần dùng thì lôi ra sử dụng nhé.

Có thể bạn muốn xem

Leave a reply

Please enter your comment!
Please enter your name here