substr_compare

(PHP 5, PHP 7, PHP 8)

substr_compareComparar dos strings desde un offset hasta una longitud en caracteres

Descripción

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

substr_compare() compara haystack desde la posición offset con needle durante length caracteres.

Parámetros

haystack

El string principal a comparar.

needle

El string secundario a comparar.

offset

La posición de inicio para la comparación. Si es un valor negativo, se comienza a contar desde el final del string.

length

La longitud de la comparación. El valor por omisión es el máximo entre la longitud de needle y la longitud de haystack menos el parámetro offset.

case_insensitive

Si case_insensitive vale true, la comparación no distingue entre mayúsculas y minúsculas.

Valores devueltos

Returns a value less than 0 if string1 is less than string2; a value greater than 0 if string1 is greater than string2, and 0 if they are equal. No particular meaning can be reliably inferred from the value aside from its sign.

Si length es igual (anterior a PHP 7.2.18, 7.3.5) o mayor que el tamaño de haystack o que length está definido y es inferior a 0, substr_compare() muestra una alerta y retorna false.

Historial de cambios

Versión Descripción
8.2.0 This function is no longer guaranteed to return strlen($string1) - strlen($string2) when string lengths are not equal, but may now return -1 or 1 instead.
8.0.0 length ahora es nullable.
7.2.18, 7.3.5 offset ahora puede ser igual al tamaño de haystack.

Ejemplos

Ejemplo #1 Ejemplo con substr_compare()

<?php
echo substr_compare("abcde", "bc", 1, 2), PHP_EOL; // 0
echo substr_compare("abcde", "de", -2, 2), PHP_EOL; // 0
echo substr_compare("abcde", "bcg", 1, 2), PHP_EOL; // 0
echo substr_compare("abcde", "BC", 1, 2, true), PHP_EOL; // 0
echo substr_compare("abcde", "bc", 1, 3), PHP_EOL; // 1
echo substr_compare("abcde", "cd", 1, 2), PHP_EOL; // -1
echo substr_compare("abcde", "abc", 5, 1), PHP_EOL; // -1
?>

Ver también

  • strncmp() - Comparación binaria de los n primeros caracteres