Documentación offline PHP master

substr_compare

master Ver versión oficial en línea Licencia CC-BY-3.0Descargado el 2026-08-02

En esta página

substr_compare

Comparar dos strings desde un offset hasta una longitud en caracteres

Descripción#

substr_compare(string $haystack, string $needle, int $offset, [int $length], [bool $case_insensitive]): int
```php

`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

Devuelve un valor inferior a 0 si `string1` es inferior a `string2`; un valor superior a 0 si `string1` es superior a `string2`, y `0` si son iguales. No se puede deducir ningún significado particular de este valor, excepto su signo.

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 | Esta función ya no garantiza retornar `strlen($string1) - strlen($string2)` cuando las longitudes de las strings no son iguales, y puede retornar `-1` o `1` en su lugar. |
| 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 con `substr_compare`

```php

Véase también#

strncmp