Trong bất kỳ loại lập trình nào, bạn sẽ luôn gặp các tình huống cần so sánh các giá trị với nhau, nếu các giá trị là boolean hoặc số nguyên thì việc so sánh rất đơn giản. Nhưng nếu bạn muốn so sánh các chuỗi hoặc các phần của chuỗi thì có thể so sánh nhiều hơn, chẳng hạn như trường hợp của chuỗi bạn đang so sánh
Trong hướng dẫn này, chúng ta sẽ xem xét tất cả các cách khác nhau để bạn có thể so sánh các chuỗi trong PHP bằng cách sử dụng một số hàm PHP tích hợp
== toán tử
Cách phổ biến nhất mà bạn sẽ thấy khi so sánh hai chuỗi đơn giản là sử dụng toán tử == nếu hai chuỗi bằng nhau thì nó trả về true
if['string1' == 'string1'] { echo ' Strings match. '; } else { echo ' Strings do not match. '; }
Mã này sẽ trả về các chuỗi khớp nhau, nhưng nếu các chuỗi không giống nhau thì nó sẽ không khớp. Nếu tất cả các chữ cái trong một chuỗi đều ở dạng chữ hoa thì điều này sẽ trả về false và các chuỗi không khớp.
if['string1' == 'STRING1'] { echo ' Strings match. '; } else { echo ' Strings do not match. '; }
Điều này có nghĩa là chúng ta không thể sử dụng toán tử == khi so sánh các chuỗi từ đầu vào của người dùng, ngay cả khi chữ cái đầu tiên được viết hoa, nó vẫn trả về false. Vì vậy, chúng ta cần sử dụng một số chức năng khác để giúp so sánh các chuỗi
Hàm strcmp
Một cách khác để so sánh các chuỗi là sử dụng hàm PHP strcmp, đây là hàm so sánh chuỗi an toàn nhị phân sẽ trả về 0 nếu các chuỗi khớp
if[strcmp['string1', 'string1'] == 0] { echo ' Strings match. '; } else { echo ' Strings do not match. '; }
Câu lệnh if này sẽ trả về true và lặp lại rằng các chuỗi khớp với nhau. Nhưng hàm này phân biệt chữ hoa chữ thường nên nếu một trong các chuỗi có chữ hoa thì hàm sẽ không trả về 0
Hàm strcasecmp
Các ví dụ trước sẽ không cho phép bạn so sánh các chuỗi chữ hoa chữ thường khác nhau, hàm sau đây sẽ cho phép bạn so sánh các chuỗi không phân biệt chữ hoa chữ thường
if[strcasecmp['string1', 'string1'] == 0] { echo ' Strings match. '; } else { echo ' Strings do not match. '; } if[strcasecmp['string1', 'String1'] == 0] { echo ' Strings match. '; } else { echo ' Strings do not match. '; } if[strcasecmp['string1', 'STRING1'] == 0] { echo ' Strings match. '; } else { echo ' Strings do not match. '; }
Tất cả các câu lệnh if này sẽ trả về các chuỗi khớp nhau, có nghĩa là chúng ta có thể sử dụng hàm này khi so sánh các chuỗi do người dùng nhập vào
Toán tử bằng
if['string1' == 'STRING1'] { echo ' Strings match. '; } else { echo ' Strings do not match. '; }7 dùng để so sánh giá trị của các biến và toán tử trùng
if['string1' == 'STRING1'] { echo ' Strings match. '; } else { echo ' Strings do not match. '; }8 dùng để so sánh các biến có giá trị chuỗi và giá trị nguyên
Sau đó, chúng tôi sẽ giới thiệu hàm
if['string1' == 'STRING1'] { echo ' Strings match. '; } else { echo ' Strings do not match. '; }9 và so sánh các chuỗi
Sử dụng toán tử PHP if['string1' == 'STRING1']
{
echo '
Strings match.
';
} else {
echo '
Strings do not match.
';
}
7 để so sánh các chuỗi trong PHP
Toán tử PHP
if['string1' == 'STRING1'] { echo ' Strings match. '; } else { echo ' Strings do not match. '; }7, còn được gọi là Toán tử bình đẳng, có thể so sánh giá trị của các biến. Toán tử trả về false nếu các giá trị không giống nhau
Trong ví dụ dưới đây, chúng tôi sẽ so sánh các loại tiền tệ
đầu ra
The Currencies are not the same
So sánh ở trên là chính xác vì
The Currencies are not the same
1 không giống với The Currencies are not the same
2Sử dụng Toán tử PHP if['string1' == 'STRING1']
{
echo '
Strings match.
';
} else {
echo '
Strings do not match.
';
}
8 để so sánh các biến với giá trị chuỗi và giá trị số nguyên
Sẽ là tốt nhất nếu bạn tránh sử dụng toán tử
if['string1' == 'STRING1'] { echo ' Strings match. '; } else { echo ' Strings do not match. '; }7 để so sánh các biến có giá trị chuỗi và giá trị nguyên
Đây là lý do tại sao;
Trong mã ví dụ bên dưới, chúng ta sẽ sử dụng toán tử
if['string1' == 'STRING1'] { echo ' Strings match. '; } else { echo ' Strings do not match. '; }7 để so sánh một giá trị chuỗi biến
The Currencies are not the same
6 với một giá trị số nguyên The Currencies are not the same
6
đầu ra
Về mặt kỹ thuật, đầu ra ở trên không chính xác do các loại dữ liệu khác nhau
Hãy để chúng tôi nhìn vào mã chính xác
đầu ra
if['string1' == 'STRING1'] { echo ' Strings match. '; } else { echo ' Strings do not match. '; }2
Đầu ra ở trên là đúng vì các giá trị của chúng tôi thuộc các loại dữ liệu khác nhau
Toán tử
if['string1' == 'STRING1'] { echo ' Strings match. '; } else { echo ' Strings do not match. '; }8 trả về giá trị true khi cả hai biến có cùng thông tin và kiểu dữ liệu
Sử dụng hàm if['string1' == 'STRING1']
{
echo '
Strings match.
';
} else {
echo '
Strings do not match.
';
}
9 để so sánh các chuỗi trong PHP
Hàm
if['string1' == 'STRING1'] { echo ' Strings match. '; } else { echo ' Strings do not match. '; }9 có thể so sánh các chuỗi và cho biết chuỗi thứ hai lớn hơn, nhỏ hơn hay bằng chuỗi đầu tiên
Trong bất kỳ loại lập trình nào, bạn sẽ luôn gặp các tình huống cần so sánh các giá trị với nhau, nếu các giá trị là boolean hoặc số nguyên thì việc so sánh rất đơn giản. Nhưng nếu bạn muốn so sánh các chuỗi hoặc các phần của chuỗi thì có thể so sánh nhiều hơn, chẳng hạn như trường hợp của chuỗi bạn đang so sánh. Trong hướng dẫn này, chúng ta sẽ xem xét tất cả các cách khác nhau để bạn có thể so sánh các chuỗi trong PHP bằng cách sử dụng một số hàm PHP tích hợp
== toán tử
Cách phổ biến nhất mà bạn sẽ thấy khi so sánh hai chuỗi đơn giản là sử dụng toán tử == nếu hai chuỗi bằng nhau thì nó trả về true
if['string1' == 'STRING1'] { echo ' Strings match. '; } else { echo ' Strings do not match. '; }3
Mã này sẽ trả về các chuỗi khớp nhau, nhưng nếu các chuỗi không giống nhau thì nó sẽ không khớp. Nếu tất cả các chữ cái trong một chuỗi đều ở dạng chữ hoa thì điều này sẽ trả về false và các chuỗi không khớp
if['string1' == 'STRING1'] { echo ' Strings match. '; } else { echo ' Strings do not match. '; }4
Điều này có nghĩa là chúng ta không thể sử dụng toán tử == khi so sánh các chuỗi từ đầu vào của người dùng, ngay cả khi chữ cái đầu tiên được viết hoa, nó vẫn trả về false. Vì vậy, chúng ta cần sử dụng một số chức năng khác để giúp so sánh các chuỗi
Hàm strcmp
Một cách khác để so sánh các chuỗi là sử dụng hàm PHP strcmp, đây là hàm so sánh chuỗi an toàn nhị phân sẽ trả về 0 nếu các chuỗi khớp
if['string1' == 'STRING1'] { echo ' Strings match. '; } else { echo ' Strings do not match. '; }5
Câu lệnh if này sẽ trả về true và lặp lại rằng các chuỗi khớp với nhau. Nhưng hàm này phân biệt chữ hoa chữ thường nên nếu một trong các chuỗi có chữ hoa thì hàm sẽ không trả về 0
Hàm strcasecmp
Các ví dụ trước sẽ không cho phép bạn so sánh các chuỗi chữ hoa chữ thường khác nhau, hàm sau đây sẽ cho phép bạn so sánh các chuỗi không phân biệt chữ hoa chữ thường
if['string1' == 'STRING1'] { echo ' Strings match. '; } else { echo ' Strings do not match. '; }6
Tất cả các câu lệnh if này sẽ trả về các chuỗi khớp nhau, có nghĩa là chúng ta có thể sử dụng hàm này khi so sánh các chuỗi do người dùng nhập vào