substr_compare

FunctionParams and return types changed in PHP 8.0

Binary safe comparison of two strings from an offset, up to length characters.

PHP 5
PHP 7
PHP 8.0
Improved
PHP 8.1
PHP 8.2-8.3
PHP 8.4
PHP 8.5
PHP 8.6

substr_compare Function synopsis

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

Parameters

$haystack

Typestring

The main string being compared.

$needle

Typestring

The secondary string being compared.

$offset

Typeint

The start position for the comparison. If negative, it starts counting from the end of the string.

$length

OptionalType?intDefault valuenull

The length of the comparison. The default value is the largest of the length of the $needle compared to the length of $haystack minus the $offset.

$case_insensitive

OptionalTypeboolDefault valuefalse

If $case_insensitive is true, comparison is case insensitive.

Return value

Typeint

If $offset is equal to (prior to PHP 7.2.18, 7.3.5) or greater than the length of $haystack, or the $length is set and is less than 0, substr_compare prints a warning and returns false.

Changes to the substr_compare Function

PHP 8.0

  • Return type added: int
  • Parameter name of parameter #1 changed: $main_str to $haystack
  • Parameter type added for parameter #1 ($haystack): string
  • Parameter name of parameter #2 changed: $str to $needle
  • Parameter type added for parameter #2 ($needle): string
  • Parameter type added for parameter #3 ($offset): int
  • Parameter type added for parameter #4 ($length): ?int
  • Parameter default value added for position #4 ($length): null
  • Parameter name of parameter #5 changed: $case_sensitivity to $case_insensitive
  • Parameter type added for parameter #5 ($case_insensitive): bool
  • Parameter default value added for position #5 ($case_insensitive): false
  substr_compare(
-     $main_str,
+     string $haystack,
-     $str,
+     string $needle,
-     $offset,
+     int $offset,
-     $length,
+     ?int $length = null,
-     $case_sensitivity
+     bool $case_insensitive = false
-   )
+   ): int

substr_compare Function Availability

PHP VersionAvailability
PHP 8.6Upcoming Release Yes
PHP 8.5Supported (Latest) Yes
PHP 8.4Supported Yes
PHP 8.3Security-Fixes Only Yes
PHP 8.2Security-Fixes Only Yes
PHP 8.1Unsupported Yes
PHP 8.0Unsupported Yes
PHP 7.4Unsupported Yes
PHP 7.3Unsupported Yes
PHP 7.2Unsupported Yes
PHP 7.1Unsupported Yes
PHP 7.0Unsupported Yes
PHP 5.6Unsupported Yes
PHP 5.5Unsupported Yes
PHP 5.4Unsupported Yes
PHP 5.3Unsupported Yes