PHP 8 viene con una serie de novedades muy útiles, como lo son: los argumentos con nombre o una nueva manera para definir constructores. Sin embargo, PHP 8 también trae muchas otras mejoras convenientes que pueden pasar desapercibidas al principio, cómo es la adición de 3 nuevas funciones para el manejo de cadenas.
Buscando cadenas con str_contains
La función str_contains
comprueba si una cadena contiene otra cadena más pequeña. Esta función va a verificar si la cadena más pequeña existe, sin importar su posición exacta dentro de la cadena principal o si se trata de una cadena vacía. Posee la siguiente sintaxis:
// str_contains( string $value , string $search ) : bool;
$value
es la cadena principal y $search
es la cadena más pequeña que se desea buscar dentro de $value
.
Veamos los resultados que devuelve esta función en el siguiente ejemplo:
str_contains('abc', 'b'); // true; str_contains('abc', 'd'); // false; // Si la cadena a buscar está vacía: str_contains('abc', ''); // true; str_contains('', ''); // true;
En este ejemplo, al buscar b
la función nos devolverá true
ya que esta cadena se encuentra contenida en nuestra cadena principal, mientras que al buscar d
la función nos devolverá false
, puesto que el caracter d
no se encuentra dentro de la cadena principal. En caso de que la cadena a buscar se encuentre vacía, la función siempre devolverá true
.
En PHP el valor ''
dentro de funciones de cadenas está definido como nulo y se considera que una cadena ''
puede coincidir en cualquier posición al ser buscada dentro de otra. Por esta razón el resultado siempre retornará true
.
Buscando cadenas según su ubicación con str_starts_with
y str_ends_with
Además de la función str_contains
que busca una cadena dentro de otra sin importar su posición, PHP 8 nos ofrece las funciones str_starts_with
y str_ends_with
que realizan la búsqueda tomando en cuenta si la cadena a buscar se encuentra al principio o al final de la cadena principal.
En esencia, str_starts_with
comprueba si la cadena a buscar se encuentra al inicio de la cadena principal, mientras que str_ends_with
comprueba si se encuentra al final:
$value = 'abc'; str_starts_with ($value, 'a'); //true str_ends_with($value, 'a'); //false str_starts_with($value, 'c'); //false str_ends_with($value, 'c'); //true str_starts_with($value, 'b'); //false str_ends_with($value, 'b'); //false
Cómo puedes ver en el primer ejemplo, si buscamos la cadena a
dentro de la cadena abc
, la función str_starts_with
nos devolverá true
pues a
se encuentra al inicio de la cadena principal; mientras que str_ends_with
nos retornará false
al no encontrarse al final.
Las funciones str_contains
, str_starts_with
y str_ends_with
son sensibles a mayúsculas y minúsculas, así que asegúrate de tener esto en cuenta al realizar búsquedas de cadenas utilizando estas funciones.
Te recomendamos, siempre que tenga sentido, usar estas funciones de PHP en lugar de strpos
cuya sintaxis es menos amigable.
Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.
Lección anterior Cambios a la comparación no estricta entre cadenas y números en PHP 8 Lección siguiente Unión de Datos en PHP 8