Hàm substr_compare() PHP sử dụng như thế nào ?

Hàm substr_compare() PHP là một hàm được tích hợp sẵn trong PHP, hỗ trợ so sánh hai chuỗi từ vị trí bắt đầu được chỉ định đến vị trí kết thúc được chỉ định. Đây là một hàm an toàn nhị phân và tùy chọn phân biệt hoa thường. Hàm này được hỗ trợ trong các phiên bản PHP 5 trở lên.

Lập Trình Viên mời bạn cùng tham khảo chi tiết nội dung bên dưới. Bài viết này nằm trong chuyên đề hướng dẫn PHP từ cơ bản đến nâng cao tại dự án Phát Triển Website.

Hàm substr_compare() PHP Là gì

Hàm substr_compare() PHP được sử dụng để so sánh hai chuỗi từ vị trí bắt đầu được chỉ định đến vị trí kết thúc được chỉ định. Nó là một hàm an toàn nhị phân và có thể phân biệt hoa thường tùy chọn. Hàm này trả về giá trị 0 nếu cả hai chuỗi được so sánh bằng nhau, giá trị < 0 nếu $ main_str (từ vị trí bắt đầu) nhỏ hơn $ str và giá trị > 0 nếu $ main _str (từ vị trí bắt đầu) lớn hơn $ str.

Hướng dẫn Hàm substr_compare() PHP

Cú pháp của hàm substr_compare() PHP được hiển thị dưới đây. Nó bao gồm năm tham số trong đó ba là bắt buộc và hai còn lại là tùy chọn. Dưới đây là mô tả cho các tham số này:

substr_compare($main_str, $str, $start_pos, $length, $case_insensitivity);
  • $ main_str (bắt buộc): Đây là tham số chuỗi chính của hàm này cần phải được so sánh. Đây là một tham số bắt buộc.
  • $ str (bắt buộc): Đây là tham số chuỗi thứ hai của hàm này được chỉ định để so sánh. Nó cũng là một tham số bắt buộc như $ main_str.
  • $ start_pos (bắt buộc): Đây là một tham số bắt buộc, có giá trị nguyên. Tham số này chỉ định giá trị, từ đâu bắt đầu so sánh $ str trong $ main_str. Nó cung cấp vị trí bắt đầu cho việc so sánh. Nếu giá trị được truyền âm, thì nó bắt đầu so sánh từ cuối chuỗi.
  • $ length (tùy chọn): Tham số này không bắt buộc phải truyền vào trong hàm này. Nó chứa độ dài của so sánh, nghĩa là nó chỉ định bao nhiêu $ str để so sánh.
  • $ case-insensitivity (tùy chọn): Tham số này chứa giá trị Boolean, xác định liệu có thực hiện so sánh phân biệt chữ hoa và thường hay không. Đây là một tham số tùy chọn như $ length. Nếu $ case-insensitivity là TRUE, thì so sánh sẽ không phân biệt chữ hoa và thường. FALSE – Phân biệt chữ hoa thường (giá trị mặc định) TRUE – Không phân biệt chữ hoa thường

Tham Số

Hàm substr_compare() PHP có năm tham số như đã đề cập trong cú pháp của hàm này. Ba tham số đầu tiên là bắt buộc, trong khi hai tham số c ác lại là tùy chọn. Dưới đây là mô tả chi tiết cho các tham số này:

  • $ main_str (bắt buộc): Đây là chuỗi chính cần được so sánh.
  • $ str (bắt buộc): Đây là chuỗi thứ hai được chỉ định để so sánh.
  • $ start_pos (bắt buộc): Đây là vị trí bắt đầu để so sánh chuỗi $ str trong chuỗi $ main_str.
  • $ length (tùy chọn): Đây là tham số không bắt buộc, chỉ định độ dài của so sánh.
  • $ case_insensitivity (tùy chọn): Đây là tham số có giá trị Boolean, xác định liệu có nên phân biệt chữ hoa và thường hay không.

Giá trị trả về

Hàm substr_compare() PHP trả về một trong các giá trị sau:

  • 0 – Nếu cả hai chuỗi được so sánh bằng nhau.
  • < 0 – Nếu $ main_str (từ vị trí bắt đầu) nhỏ hơn $ str.
  • > 0 – Nếu $ main _str (từ vị trí bắt đầu) lớn hơn $ str.

Lưu ý: Nếu giá trị tham số $ length bằng hoặc lớn hơn độ dài của chuỗi chính ($ main_str), thì hàm này sẽ hiển thị một cảnh báo và trả về FALSE.

Phiên bản Mô tả PHP 5.1.0 Có thể sử dụng start_pos âm. PHP 5.5.11 $length có thể là 0. PHP 7.2.18, 7.3.5 $start_pos có thể bằng độ dài của chuỗi chính ($ main_str).

Dưới đây là vài ví dụ để hiểu cách hoạt động của hàm substr_compare() PHP:

Ví dụ 1

Trong ví dụ dưới đây, chúng ta truyền vào 3 tham số bắt buộc trong hàm này:

<?php
    $str1 = "Hello World";
    $str2 = "Hello";

    // Comparing first 5 characters of str1 with str2
    $res = substr_compare($str1, $str2, 0, 5);

    if($res === 0){
        echo "Both strings are equal";
    }else{
        echo "Both strings are not equal";
    }
?>

Kết quả sẽ là “Cả hai chuỗi bằng nhau”. Hàm này sẽ so sánh 5 ký tự đầu tiên của chuỗi $str1 với chuỗi $str2.

Ví dụ 2

Trong ví dụ dưới đây, chúng ta truyền vào 4 tham số trong đó $length là một tham số tùy chọn:

<?php
    $str1 = "Hello World";
    $str2 = "HEllo";

    // Comparing last 5 characters of str1 with str2 and ignoring case sensitivity
    $res = substr_compare($str1, $str2, -5, 5, true);

    if($res === 0){
        echo "Both strings are equal";
    }else{
        echo "Both strings are not equal";
    }
?>

Kết quả sẽ là “Cả hai chuỗi không bằng nhau”. Hàm này sẽ so sánh 5 ký tự cuối cùng của chuỗi $str1 với chuỗi $str2 và bỏ qua phân biệt chữ hoa và thường.

Cách triển khai Hàm substr_compare() PHP

Hàm substr_compare() PHP là một hàm nội tuyến giúp bạn so sánh hai phần của chuỗi, bắt đầu từ một vị trí nhất định. Hàm này lấy ba giá trị làm đầu vào và trả về một giá trị nguyên. Giá trị này sẽ là:

  • -1 nếu phần đầu tiên của chuỗi nhỏ hơn phần thứ hai.
  • 0 nếu hai phần của chuỗi bằng nhau.
  • 1 nếu phần đầu tiên của chuỗi lớn hơn phần thứ hai.

Cú pháp của hàm substr_compare() PHP như sau:

substr_compare(string $haystack, string $needle, int $offset, int $length = null, bool $case_insensitive = false)

Trong đó:

  • haystack là chuỗi chứa phần đầu tiên cần so sánh.
  • needle là chuỗi chứa phần thứ hai cần so sánh.
  • offset là vị trí bắt đầu của phần cần so sánh trong haystack.
  • length là độ dài của phần cần so sánh. Giá trị mặc định là null, có nghĩa là hàm sẽ so sánh tất cả các ký tự từ vị trí offset đến cuối chuỗi.
  • case_insensitive là một giá trị boolean chỉ định xem so sánh có phân biệt chữ hoa chữ thường hay không. Giá trị mặc định là false, có nghĩa là so sánh sẽ phân biệt chữ hoa chữ thường.

Ví dụ:

$string1 = "This is a string.";
$string2 = "is a string.";

$result = substr_compare($string1, $string2, 5);

echo $result; // 0

Kết quả:

0

Trong ví dụ này, hàm substr_compare() PHP đã so sánh phần của chuỗi bắt đầu từ ký tự thứ 5, là “is a string”. Hai phần này bằng nhau, vì vậy hàm substr_compare() trả về giá trị 0.

Hàm substr_compare() PHP là một hàm hữu ích để so sánh các phần của chuỗi. Hàm này có thể được sử dụng cho nhiều mục đích, chẳng hạn như kiểm tra xem hai chuỗi có giống nhau hay không, hoặc tìm kiếm một chuỗi trong một chuỗi khác.

Dưới đây là một số ví dụ về cách sử dụng hàm substr_compare():

  • So sánh hai phần của chuỗi:
$string1 = "This is a string.";
$string2 = "is a string.";

$result = substr_compare($string1, $string2, 5);

echo $result; // 0

Kết quả:

0
  • So sánh hai chuỗi:
$string1 = "This is a string.";
$string2 = "This is a string.";

$result = substr_compare($string1, $string2, 0);

echo $result; // 0

Kết quả:

0
  • So sánh hai chuỗi phân biệt chữ hoa chữ thường:
$string1 = "This is a string.";
$string2 = "This is a String.";

$result = substr_compare($string1, $string2, 0, 10, true);

echo $result; // 1

Kết quả:

1

Hy vọng hướng dẫn này đã giúp bạn hiểu cách triển khai hàm substr_compare() PHP.

Ưu và Nhược điểm của Hàm substr_compare() PHP

Ưu điểm

  • Hàm substr_compare() PHP hỗ trợ so sánh hai chuỗi từ vị trí bắt đầu được chỉ định đến vị trí kết thúc được chỉ định.
  • Nó là một hàm an toàn nhị phân và tùy chọn phân biệt hoa thường.
  • Hàm này trả về giá trị 0 nếu cả hai chuỗi được so sánh bằng nhau, giá trị < 0 nếu $ main_str (từ vị trí bắt đầu) nhỏ hơn $ str và giá trị > 0 nếu $ main _str (từ vị trí bắt đầu) lớn hơn $ str.

Nhược điểm

  • Nếu giá trị của tham số $ length bằng hoặc lớn hơn độ dài của chuỗi chính ($ main_str), thì hàm này sẽ hiển thị một cảnh báo và trả về FALSE.

Lời khuyên Hàm substr_compare() PHP

Dưới đây là một số lời khuyên khi sử dụng hàm substr_compare() trong PHP:

  • Đảm bảo rằng bạn đã truyền đầy đủ các tham số bắt buộc vào hàm.
  • Kiểm tra xem giá trị của tham số $ length có lớn hơn độ dài của chuỗi chính ($ main_str) không, để tránh hiển thị cảnh báo và trả về FALSE.

Kết luận

Qua bài viết này, chúng ta đã tìm hiểu về hàm substr_compare() PHP, cách sử dụngvà các tham số của nó, giá trị trả về của hàm và những lưu ý cần nhớ khi sử dụng hàm này. Đồng thời, chúng ta cũng được biết đến ưu điểm và nhược điểm của hàm substr_compare() và những lời khuyên khi sử dụng hàm này.

Việc hiểu rõ về hàm substr_compare() PHP sẽ giúp cho việc xử lý chuỗi trở nên dễ dàng và nhanh chóng hơn. Nếu bạn đang là một lập trình viên PHP, hãy bỏ ra chút thời gian để tìm hiểu sâu về hàm này và các hàm khác có trong PHP để cải thiện khả năng lập trình của mình.

1. Hàm substr_compare() PHP được sử dụng để làm gì?

Hàm substr_compare() trong PHP được sử dụng để so sánh hai chuỗi từ vị trí bắt đầu được chỉ định đến vị trí kết thúc được chỉ định.

2. Hàm substr_compare() trong PHP có những tham số nào?

Hàm substr_compare() PHP có năm tham số: $ main_str (bắt buộc), $ str (bắt buộc), $ start_pos (bắt buộc), $ length (tùy chọn) và $ case_insensitivity (tùy chọn).

3. Hàm substr_compare() PHP trả về giá trị gì?

Hàm substr_compare() trong PHP trả về giá trị 0 nếu cả hai chuỗi được so sánh bằng nhau, giá trị < 0 nếu $ main_str (từ vị trí bắt đầu) nhỏ hơn $ str và giá trị > 0 nếu $ main _str (từ vị trí bắt đầu) lớn hơn $ str.

4. Nếu giá trị của tham số $ length lớn hơn độ dài của chuỗi chính ($ main_str), thì hàm substr_compare() sẽ trả về giá trị gì?

Nếu giá trị của tham số $ length lớn hơn độ dài của chuỗi chính ($ main_str), thì hàm substr_compare() sẽ hiển thị một cảnh báo và trả về FALSE.

5. Hàm substr_compare() PHP có phân biệt chữ hoa và thường không?

Hàm substr_compare() PHP có tùy chọn để phân biệt chữ hoa và thường hoặc không phân biệt chữ hoa và thường. Nếu bạn muốn so sánh không phân biệt chữ hoa và thường, hãy đặt tham số $ case_insensitivity là TRUE.