Saltar al contenido

substr_compare()

Introducción

La función substr_compare() de PHP se utiliza para comparar dos cadenas desde una posición de inicio especificada hasta una longitud especificada. Esta función es útil al trabajar con aplicaciones basadas en texto donde es necesario comparar ciertas partes de una cadena. En este artículo, discutiremos la función substr_compare() en detalle y cómo se puede utilizar en PHP.

Entendiendo la función substr_compare()

La sintaxis para utilizar la función substr_compare() en PHP es la siguiente:

Sintaxis

php
substr_compare(string $main_str, string $str, int $offset, ?int $length, bool $case_insensitive = false) : int

Nota: El parámetro $length es opcional. En PHP 8+, está tipado explícitamente como nulo (?int).

Aquí, $main_str es la cadena que queremos comparar con $str. $offset es la posición en la cadena principal en la que queremos comenzar la comparación. $length es el número de caracteres a comparar (opcional). Si $length no se especifica, la función compara el resto de las cadenas. $case_insensitive es un valor booleano que indica si la comparación debe ser insensible a mayúsculas y minúsculas. Si $case_insensitive es verdadero, la comparación será insensible a mayúsculas y minúsculas.

La función substr_compare() devuelve un valor entero. Si $main_str es menor que $str, la función devuelve un entero negativo. Si $main_str es mayor que $str, la función devuelve un entero positivo. Si $main_str es igual a $str, la función devuelve cero.

Ejemplo de uso

A continuación se muestra un ejemplo de uso de la función substr_compare() en PHP:

Ejemplo de substr_compare() en PHP

php
<?php

$string1 = "Hello World!";
$string2 = "Hello!";
$result = substr_compare($string1, $string2, 0, strlen($string2));
echo $result;

En el ejemplo anterior, definimos dos cadenas $string1 y $string2. Luego utilizamos la función substr_compare() para comparar $string1 con $string2 comenzando en la posición 0 y comparando los primeros strlen($string2) caracteres. Dado que el sexto carácter en $string1 es un espacio y en $string2 es un signo de exclamación, la función devuelve un entero negativo (-1). Luego imprimimos el resultado de la comparación.

Conclusión

La función substr_compare() proporciona una forma fiable de comparar segmentos específicos de cadenas sin extraerlas primero. Al aprovechar los parámetros $offset, $length y $case_insensitive, puedes realizar comparaciones precisas adaptadas a las necesidades de tu aplicación. Comprender sus valores de retorno y parámetros opcionales te ayuda a escribir un código de manejo de cadenas más limpio y eficiente en PHP.

Práctica

¿Qué hace la función de PHP substr_compare()?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.