similar_text

FunctionParams and return types changed in PHP 8.0

Calculate the similarity between two strings.

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

similar_text Function synopsis

similar_text(
    string $string1,
    string $string2,
    &$percent = null
  ): int

Parameters

$string1

Typestring

The first string.

$string2

Typestring

The second string.

$percent

Passed by reference, OptionalDefault valuenull

By passing a reference as third argument, similar_text will calculate the similarity in percent, by dividing the result of similar_text by the average of the lengths of the given strings times 100.

Note that the parameter $percent is passed by reference, and contains additional/updated context data that may be useful.

Return value

Typeint

Returns the number of matching chars in both strings.

The number of matching characters is calculated by finding the longest first common substring, and then doing this for the prefixes and the suffixes, recursively. The lengths of all found common substrings are added.

Changes to the similar_text Function

PHP 8.0

  • Return type added: int
  • Parameter name of parameter #1 changed: $str1 to $string1
  • Parameter type added for parameter #1 ($string1): string
  • Parameter name of parameter #2 changed: $str2 to $string2
  • Parameter type added for parameter #2 ($string2): string
  • Parameter default value added for position #3 ($percent): null
  similar_text(
-     $str1,
+     string $string1,
-     $str2,
+     string $string2,
-     &$percent
+     &$percent = null
-   )
+   ): int

similar_text 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