(PHP 5, PHP 7, PHP 8)
substr_compare — Comparar dos strings desde un offset hasta una longitud en caracteres
$haystack
,$needle
,$offset
,$length
= null
,$case_insensitive
= false
substr_compare() compara haystack
desde la posición offset
con needle
durante length
caracteres.
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.
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
.
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 .
|
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
?>