Skip to content

substr_compare()

Introduction

The substr_compare() function in PHP is used to compare two strings from a specified start position up to a specified length. This function is useful when working with text-based applications where certain portions of a string need to be compared. In this article, we will discuss the substr_compare() function in detail and how it can be used in PHP.

Understanding the substr_compare() function

The syntax for using the substr_compare() function in PHP is as follows:

Syntax

php
substr_compare(string $main_str, string $str, int $offset, ?int $length, bool $case_insensitive = false) : int

Note: The $length parameter is optional. In PHP 8+, it is explicitly typed as nullable (?int).

Here, $main_str is the string we want to compare to $str. $offset is the position in the main string at which we want to start the comparison. $length is the number of characters to compare (optional). If $length is not specified, the function compares the rest of the strings. $case_insensitive is a boolean value that indicates whether the comparison should be case-insensitive. If $case_insensitive is true, the comparison is case-insensitive.

The substr_compare() function returns an integer value. If $main_str is less than $str, the function returns a negative integer. If $main_str is greater than $str, the function returns a positive integer. If $main_str is equal to $str, the function returns zero.

Example Usage

Here is an example usage of the substr_compare() function in PHP:

Example of PHP substr_compare()

php
<?php

$string1 = "Hello World!";
$string2 = "Hello!";
$result = substr_compare($string1, $string2, 0, strlen($string2));
echo $result;

In the example above, we define two strings $string1 and $string2. We then use the substr_compare() function to compare $string1 to $string2 starting at position 0 and comparing the first strlen($string2) characters. Since the sixth character in $string1 is a space and in $string2 it is an exclamation mark, the function returns a negative integer (-1). We then print out the result of the comparison.

Conclusion

The substr_compare() function provides a reliable way to compare specific segments of strings without extracting them first. By leveraging the $offset, $length, and $case_insensitive parameters, you can perform precise comparisons tailored to your application's needs. Understanding its return values and optional parameters helps you write cleaner, more efficient string-handling code in PHP.

Practice

What does the PHP function substr_compare() do?

Dual-run preview — compare with live Symfony routes.