Bạn có thể so sánh các chuỗi trong PHP không?

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

Để so sánh các chuỗi trong PHP, bạn có thể sử dụng hàm strcmp[]. strcmp[] có thể tìm thấy nếu một chuỗi nhỏ hơn, bằng hoặc lớn hơn chuỗi khác

Cú pháp của hàm strcmp[] để so sánh $string1 và $string2 là

result = strcmp[$string1, $string2]

strcmp[] so sánh các chuỗi theo từ điển

  • Nếu $string1 đứng trước $string2 khi sắp xếp từ điển theo thứ tự tăng dần, thì $string1 được cho là nhỏ hơn $string2. Trong trường hợp này, strcmp[$string1, $string2] trả về giá trị âm
  • Nếu $string1 đứng sau $string2 khi sắp xếp từ điển theo thứ tự tăng dần, thì $string1 được cho là lớn hơn $string2. Trong trường hợp này, strcmp[$string1, $string2] trả về giá trị dương
  • Nếu $string1 bằng $string2, thì strcmp[$string1, $string2] trả về 0

Ví dụ – So sánh chuỗi trong PHP [string1 < string2]

Trong ví dụ này, chúng ta sẽ lấy hai chuỗi. “cam”, “táo”. Chuỗi đầu tiên xuất hiện sau chuỗi thứ hai khi được sắp xếp theo thứ tự tăng dần theo từ điển. Vì vậy, khi chúng ta chuyển hai chuỗi này làm đối số cho strcmp[], nó sẽ trả về giá trị dương

Hầu hết mọi chương trình đều hỗ trợ cơ sở so sánh các giá trị cho các biến khác nhau. Khi xây dựng các ứng dụng bằng PHP, bạn có thể gặp phải tình huống cần so sánh các giá trị. Nếu các giá trị bạn đang so sánh là giá trị Boolean hoặc số nguyên, thì việc so sánh là đơn giản; . Bởi vì trong trường hợp đó, bạn phải so sánh xem chuỗi ở dạng chữ thường hay chữ hoa. Trong hướng dẫn này, bạn sẽ tìm hiểu về các cách khác nhau để so sánh các chuỗi trong PHP

hàm strcmp[]

Cách đầu tiên để so sánh các chuỗi trong PHP là sử dụng hàm strcmp[] của PHP để dễ dàng so sánh hai chuỗi. Hàm có tất cả logic được viết bên trong nó. Hàm này sẽ lấy hai chuỗi làm tham số 'strg1' và 'strg2'. Khi đó hàm này sẽ trả về < 0 nếu chuỗi đầu tiên [i. e. strg1] nhỏ hơn chuỗi thứ hai [i. e. strg2]; . e. strg1] lớn hơn chuỗi thứ hai [i. e. strg2] và 0 nếu cả hai chuỗi bằng nhau

cú pháp

strcmp[string1,string2]

Hãy để chúng tôi tìm thấy điều này bằng cách sử dụng một ví dụ để hiểu chức năng sẽ hoạt động như thế nào

Ví dụ

== toán tử

Một cách tiếp cận đơn giản khác để so sánh các chuỗi là so sánh hai chuỗi với sự trợ giúp của một toán tử chung thường được sử dụng để so sánh các giá trị trong một câu lệnh có điều kiện. Đó là toán tử ==, sẽ kiểm tra xem hai chuỗi có bằng nhau hay không. Nếu có, thì nó sẽ trả về true

Đây là một đoạn mã đơn giản sử dụng toán tử bằng để thao tác chuỗi

Ví dụ

Điều kiện trên sẽ trả về FALSE vì chuỗi thứ nhất [strg1] không bằng chuỗi thứ hai [strg2]. Một lần nữa, nếu các chữ cái trong chuỗi đầu tiên là chữ hoa nhưng giống nhau và các chữ cái trong chuỗi thứ hai là chữ thường, thì phép so sánh này với toán tử sẽ trả về FALSE

Đây là một đoạn mã giải thích điều này

Ví dụ

________số 8

Cả hai đều khác nhau vì phép so sánh sử dụng giá trị ASCII và vì chữ thường a [có giá trị ASCII là 97] và chữ hoa A [có giá trị ASCII là 65] là khác nhau

hàm strcasecmp[]

strcasecmp là một hàm được xác định trước khác được sử dụng để so sánh hai chuỗi đã cho. Nó không phân biệt chữ hoa chữ thường cũng như an toàn nhị phân [có nghĩa là nó không trả về 0 hoặc 1]. Nó sẽ trả về số không [0] nếu cả hai chuỗi bằng nhau

Một lần nữa, khi chuỗi thứ nhất [strg1] nhỏ hơn chuỗi thứ hai [strg2] thì trả về < 0 và khi chuỗi thứ nhất [strg1] lớn hơn chuỗi thứ hai [strg2] thì trả về > 0

Ví dụ

đầu ra

if['string1' == 'STRING1']
{
     echo '
Strings match.
';
} else {
     echo '
Strings do not match.
';
}
0

hàm strncasecmp[]

strncasecmp là một hàm được xác định trước khác được sử dụng để so sánh hai chuỗi đã cho. Nó không phân biệt chữ hoa chữ thường cũng như an toàn nhị phân. So sánh chuỗi là của n ký tự đầu tiên. Sự khác biệt duy nhất giữa strcasecmp[] và strncasecmp[] là bạn có thể quy định số lượng ký tự từ mỗi chuỗi sẽ được triển khai trong so sánh của bạn. ]. Nó sẽ trả về số không [0] nếu cả hai chuỗi bằng nhau

Một lần nữa, khi chuỗi thứ nhất [strg1] nhỏ hơn chuỗi thứ hai [strg2] thì trả về < 0 và khi chuỗi thứ nhất [strg1] lớn hơn chuỗi thứ hai [strg2] thì trả về > 0

cú pháp

if['string1' == 'STRING1']
{
     echo '
Strings match.
';
} else {
     echo '
Strings do not match.
';
}
1

Ví dụ

if['string1' == 'STRING1']
{
     echo '
Strings match.
';
} else {
     echo '
Strings do not match.
';
}
2

Nếu bạn chạy đoạn mã trên, nó sẽ trả về 0, vì việc kiểm tra so sánh chỉ được thực hiện trên năm ký tự đầu tiên, như được đưa ra trong tham số thứ ba [5]

Bạn có thể sử dụng == để so sánh các chuỗi trong PHP không?

Toán tử gán chỉ định biến ở bên trái để có một giá trị mới như biến ở bên phải, trong khi toán tử bằng == kiểm tra sự bằng nhau và trả về đúng hoặc sai theo . Ví dụ. Ví dụ này mô tả so sánh chuỗi bằng toán tử ==. . Example: This example describes the string comparison using the == operator.

Chuỗi có thể được so sánh bằng == không?

Trong Chuỗi, toán tử == được sử dụng để so sánh tham chiếu của các chuỗi đã cho, tùy thuộc vào việc chúng có đang tham chiếu đến cùng một đối tượng hay không. When you compare two strings using == operator, it will return true if the string variables are pointing toward the same java object.

Chúng ta có thể so sánh chuỗi và số nguyên PHP không?

Trong trường hợp này, chúng ta thử so sánh một chuỗi với một số nguyên. PHP chuyển đổi cả hai giá trị thành số nguyên để có thể so sánh . Vì 'derp' không chứa các chữ số có thể được phân tích thành một số, nên PHP chuyển thành 0. Bây giờ, so sánh là 42 < 0 là sai.

Làm cách nào để so sánh hai biến trong PHP?

Toán tử bằng nhau == . Toán tử này chấp nhận hai đầu vào để so sánh và trả về giá trị thực nếu cả hai giá trị đều giống nhau [Nó chỉ so sánh giá trị của biến, không phải kiểu dữ liệu] và trả về giá trị sai nếu cả hai giá trị không giống nhau.

Chủ Đề