Toán tử so sánh trong PHP (P2. So sánh bằng) | Laptrinhcanban.com

Toán tử so sánh trong PHP (P2. So sánh bằng)

Hướng dẫn cách sử dụng toán tử so sánh trong PHP. Ở phần 2 này bạn sẽ học được các phép so sánh bằng trong PHP được biểu diễn thông qua 4 loại toán tử so sánh bằng trong PHP sau bài học này.

Toán tử so sánh bằng trong PHP

Toán tử so sánh bằng trong PHP, là các toán tử được đặt giữa 2 hạng tử và kiểm tra xem chúng bằng nhau hay là khác nhau trong PHP.

Để thực hiện các phép so sánh bằng trong PHP, chúng ta sử dụng 4 loại toán tử so sánh bằng trong PHP đượ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 bằng y
!=x != yx không bằng y
===x === yx nghiêm ngặt bằng y
!==x !== yx nghiêm ngặt không bằng y

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

Phép so sánh bằng trong PHP sẽ kết hợp toán tử so sánh bằng 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 bằng trong PHP

Toán tử == trong PHP

Khi đặt toán tử == trong PHP giữa 2 hạng tử, nếu chúng giống nhau thì kết quả true được trả về. Nếu kiểu của 2 hạng tử khác nhau thì chúng sẽ được chuyển về cùng một kiểu dữ liẹu trước khi được so sánh. Và nếu 2 hạng tử này thuộc kiểu object trong PHP, nếu chúng cùng tham chiếu tới một object thì được coi là bằng nhau và kết quả true được trả về.

toán tử != thì sẽ có tác dụng ngược lại hoàn toàn với toán tử == trong PHP.

So sánh == cùng kiểu dữ liệu

Khi sử dụng toán tử ==, nếu 2 hạng tử có cùng kiểu dữ liệu thì giá trị true sẽ được trả về nếu chúng giống nhau.

echo 10 == 10;
// true
echo 10 == 8;
// false
echo 'Apple' == 'Apple';
// true
echo 'Apple' == 'apple';
// false
echo true == true;
// true
echo true == false;
// false
echo false == false;
//true
echo null == null;
// true

So sánh == khác kiểu dữ liệu

Khi sử dụng toán tử ==, nếu 2 hạng tử khác kiểu dữ liệu thì chúng sẽ được chuyển về cùng kiểu dữ liệu trước khi được so sánh.

Ví dụ chúng ta so sánh chuỗi với số bằng toán tử ==, chuỗi đó sẽ được chuyển về kiểu số trước khi được so sánh như sau:

echo 10 == '10';
// true

echo 10 == '8';
// false

echo 10 == 'Apple';
// false

Lại nữa, trong PHP cũng 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.

echo 1 == true;
// true
echo 0 == false;
// true
echo 1 == false;
// false
echo '1' == true;
// true
echo 'true' == true;
// false

echo null == 0;
// false

echo null == 1;
// false

Toán tử === trong PHP

Trong phép so sánh nghiêm ngặt với toán tử === trong PHP, nếu 2 hạng tử đem so sánh có cùng kiểu và cùng giá trị thì true sẽ được trả về. Nếu 2 hạng tử khác kiểu dữ liệu, chúng không được chuyển về cùng kiểu mà kết quả phép so sánh sẽ luôn trả về false.

toán tử !== thì sẽ có tác dụng ngược lại hoàn toàn với toán tử === trong PHP.

So sánh === cùng kiểu dữ liệu

Khi sử dụng toán tử ===, nếu 2 hạng tử có cùng kiểu dữ liệu thì giá trị true sẽ được trả về nếu chúng giống nhau.

echo 10 === 10;
// true
echo 10 === 8;
// false
echo 'Apple' === 'Apple';
// true
echo 'Apple' === 'apple';
// false
echo true === true;
// true
echo true === false;
// false
echo null === null;
// true

So sánh === khác kiểu dữ liệu

Khi sử dụng toán tử ===, nếu 2 hạng tử khác kiểu dữ liệu kết quả false sẽ luôn được trả về.

Ví dụ:

echo 10 === '10';
// false
echo 1 === true;
// false
echo 0 === false;
// false
echo null === 0;
// false

Sự khác biệt giữa === và == trong PHP

Qua các phân tích trên, chúng ta có thể thấy sự khác biệt giữa === và == trong PHP thể hiện rõ trong trường hợp chúng ta cần so sánh các giá trị thuộc kiểu dữ liệu khác nhau trong PHP.

  1. Khi so sánh các giá trị thuộc kiểu dữ liệu khác nhau trong PHP bằng toán tử ==, các giá trị này sẽ được chuyển về cùng một kiểu dữ liệu rồi mới đem so sánh. Và kết quả phép so sánh sẽ hoàn toàn phụ thuộc vào giá trị được chuyển kiểu của chúng.

  2. Ngược lại khi so sánh các giá trị thuộc kiểu dữ liệu khác nhau trong PHP bằng toán tử ===, chúng không được chuyển về cùng kiểu dữ liệu, và phép so sánh sẽ luôn trả về kết quả true.

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 bằng 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.