Toán tử so sánh trong PHP (P1. Toán tử quan hệ) | Laptrinhcanban.com

Toán tử so sánh trong PHP (P1. Toán tử quan hệ)

Hướng dẫn cách sử dụng toán tử so sánh trong PHP. Ở phần 1 này bạn sẽ học được các phép so sánh trong PHP được biểu diễn thông qua các toán tử quan hệ và ứng dụng chúng để so sánh 2 số trong PHP, so sánh 2 chuỗi trong PHP cũng như là phép so sánh số và chuỗi trong PHP.

Toán tử so sánh trong PHP

Toán tử so sánh trong PHP hay còn gọi là toán tử quan hệ, là các toán tử được đặt giữa 2 hạng tử và so sánh mối quan hệ giữa chúng trong PHP.

Để thực hiện các phép so sánh trong PHP, chúng ta sử dụng 4 loại toán tử quan hệ được liệt kê trong bảng dưới đây:

Toán tửBiểu thức điều kiệnÝ nghĩa
>x > yx lớn hơn y
>=x >= yx lớn hơn hoặc bằng y
<x < yx nhỏ hơn y
<=x <= yx nhỏ hơn hoặc bằng y

Ngoài các toán tử so sánh lớn nhỏ này, chúng ta cũng sử dụng tới 4 loại toán tử so sánh bằng mà Kiyoshi đã giới thiệu trong bài Toán tử so sánh trong PHP (P2: so sánh bằng).

Phép so sánh trong PHP sẽ kết hợp toán tử so sánh cùng với hai giá trị ở hai vế trái phải thành một biểu thức điều kiện, sau đó kiểm tra biểu thức điều kiện này là đúng hay sai và đưa ra kết quả. Kết quả của các phép so sánh trong PHP sẽ là kiểu boolean trong PHP với hai giá trị là True (đúng) hoặc False (sai), và phép toán so sánh trong PHP được sử dụng để cấu tạo biểu thức điều kiện được sử dụng trong câu lệnh if trong PHP.
Toán tử so sánh trong PHP

So sánh số trong PHP bằng toán tử so sánh

Toán tử lớn hơn (>)

Khi đặt giữa 2 số, toán tử lớn hơn (>) sẽ so sánh chúng với nhau và trả về true nếu số bên trái lớn hơn số bên phải.

echo 5 > 10;
// false

echo 5 > 5;
// false

echo 5 > 3;
// true

Toán tử lớn hơn hoặc bằng (>=)

Khi đặt giữa 2 số, toán tử lớn hơn hoặc bằng (>=) sẽ so sánh chúng với nhau và trả về true nếu số bên trái lớn hơn hoặc bằng số bên phải.

echo 5 >= 10;
// false

echo 5 >= 5;
// true

echo 5 >= 3;
// true

Toán tử nhỏ hơn (<)

Khi đặt giữa 2 số, toán tử nhỏ hơn (<) sẽ so sánh chúng với nhau và trả về true nếu số bên trái nhỏ hơn số bên phải.

echo 5 < 10;
// true

echo 5 < 5;
// false

echo 5 < 3;
// false

Toán tử nhỏ hơn hoặc bằng (<=)

Khi đặt giữa 2 số, toán tử nhỏ hơn hoặc bằng (<=) sẽ so sánh chúng với nhau và trả về true nếu số bên trái nhỏ hơn hoặc bằng số bên phải.

echo 5 <= 10;
// true

echo 5 <= 5;
// true

echo 5 <= 3;
// false

So sánh chuỗi trong PHP bằng toán tử so sánh

Khi sử dụng phép so sánh bằng để so sánh chuỗi PHP, chúng ta kiểm tra giá trị của chúng có bằng nhau hay không. Lưu ý là khi so sánh chuỗi trong PHP, chúng ta cần phân biệt giữa chữ hoa và chữ thường.

So sánh 2 ký tự trong PHP

Tương tự như với số thì chúng ta cũng sử dụng các toán tử so sánh để so sánh 2 ký tự trong PHP.

Tuy nhiên khác với so sánh giữa số thì về bản chất, khi so sánh giữa hai ký tự trong PHP, chương trình sẽ tiến hành so sánh mã ký tự Unicode giữa chúng.

Ví dụ, do mã ký tự Unicode của ký tự a là 97 sẽ lớn hơn của ký tự A là 65 nên phép so sánh sau sẽ cho ra kết quả True.

$unicodeValue_a = ord('a');
$unicodeValue_A = ord('A');
echo "Mã unicode của a: ".$unicodeValue_a."\n";
echo "Mã unicode của A: ".$unicodeValue_A."\n";

if ( 'a' > 'A') echo "a > A";

Kết quả:

Mã unicode của a: 97
Mã unicode của A: 65
a > A

So sánh 2 chuỗi string trong PHP

Một cách tương tự thì chúng ta cũng sử dụng các toán tử so sánh để so sánh 2 chuỗi string trong PHP.

Lưu ý khác với so sánh ký tự đơn thì khi so sánh 2 chuỗi string với nhau trong PHP, chương trình sẽ so sánh lần lượt mã ký tự Unicode của các cặp ký tự ở cùng vị trí giữa chúng.

Lúc này, phép so sánh sẽ bắt đầu từ cặp ký tự đầu tiên trong hai chuỗi, và nếu chúng giống nhau, các ký tự tiếp theo được so sánh cho tới khi xuất hiện một ký tự khác nhau đầu tiên trong hai chuỗi. Khi đó, mã ký tự Unicode của ký tự này sẽ đại diện cho cả chuỗi và được dùng để so sánh lớn nhỏ.

Ví dụ khi so sánh giữa 2 chuỗi string “Bac” và “BA” dưới đây, ký tự đầu tiên giữa chúng giống nhau, và ký tự thứ 2 là khác nhau, do đó kết quả so sánh giữa 2 ký tự thứ 2 là ‘a’ và ‘A’ sẽ đại diện cho kết quả so sánh giữa chúng.

$a = 'Bac'; 
$b = 'BA';


$unicodeValue_a = ord('a');
$unicodeValue_A = ord('A');
echo "Mã unicode của a: ".$unicodeValue_a."\n";
echo "Mã unicode của A: ".$unicodeValue_A."\n";

if ( $a> $b) echo $a." > ".$b;

Kết quả:

Mã unicode của a: 97
Mã unicode của A: 65
Bac > BA

So sánh giữa chuỗi và số trong PHP bằng toán tử so sánh

Trong trường hợp so sánh giữa chuỗi và số trong PHP, các kết quả sẽ khác nhau tuỳ theo phiên bản của PHP và việc chuỗi đó có phải là chữ số hay không.

Nếu chuỗi đó chỉ bao gồm các chữ số, chữ số này sẽ được chuyển thành dạng số trước khi được đem đi so sánh.

Ví dụ cụ thể, chuỗi ‘12’ được chuyển thành số 12 và thực hiện phép so sánh như sau:

echo '12' > 3;
// true

Còn nếu chuỗi đó là chuỗi ký tự, khác với các phiên bản trước PHP7.0 sẽ chuyển ký tự đầu tiên thành mã Unicode rồi đem so sánh với số, thì trong các phiên bản sau PHP8.0 sẽ ngược lại, số sẽ được chuyển sang dạng chuỗi, sau đó mới đem so sánh 2 chuỗi đó với nhau, như cách Kiyoshi đã hướng dẫn ở phần trên.

Ví dụ, số 20 dưới sẽ được chuyển thành chuỗi “20” trước khi đem so sánh với các chuỗi khác. Và khi đó thực chất chúng ta so sánh mã Unicode của ký tự 2 với ký tự a trong các ví dụ dưới. Do mã mã Unicode của ký tự 2 bằng 50 và của a bằng 97, nên sẽ ra các kết quả như sau:

echo 'a' > 20;
// true

echo 'abc' > 20;
// true

echo 'a' > 100;
// true

echo 'abc' > 100;
// true

So sánh giữa số và các giá trị không phải chuỗi trong PHP

Trong PHP, có một số kiểu dữ liệu không thuộc kiểu chuỗi nhưng có thể được chuyển về dạng số như sau đây:

true       1
false      0
null       0

Do vậy, khi so sánh chúng với số trong PHP, kết quả phép so sánh sẽ phụ thuộc vào kết quả chuyển kiểu dữ liệu về số của chúng.

Ví dụ cụ thể:

echo true > false);
// true
echo true > 0);
// true
echo false > 0);
// false
echo null >= 0);
// true
echo null < 0);
// false

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách sử dụng các phép so sánh trong PHP được biểu diễn thông qua các toán tử so sánh trong PHP rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về PHP trong các bài học tiếp theo.

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.