Convertir valores de strings no decimales con el método toInteger() de Laravel
- Publicado el 21 marzo, 2025
- Palabras: 135
¿Trabajas con valores de strings hexadecimales, octales o binarios en Laravel? El método Stringable toInteger() ahora acepta un parámetro base, lo que simplifica la conversión de valores de strings no decimales.

Al manipular strings que representan números en diferentes bases de datos, los desarrolladores suelen necesitar alternar entre las operaciones fluidas de Laravel de strings y las funciones nativas de PHP. Con el método mejorado toInteger(), ahora se pueden realizar estas conversiones directamente dentro del string. Veamos cómo funciona esto:
// Convert a hexadecimal string to an integer
$value = Str::of('1A')->toInteger(16); // Returns 26
// Convert a binary string to an integer
$value = Str::of('1010')->toInteger(2); // Returns 10
// Convert an octal string to an integer
$value = Str::of('777')->toInteger(8); // Returns 511
#Ejemplo práctico
Esta mejora es especialmente útil al procesar formatos de datos que incluyen números no decimales, como códigos de color, datos binarios o valores de configuración. A continuación, se muestra un ejemplo práctico del procesamiento de un código de color hexadecimal:
// Before: Breaking out of the fluent chain
$hexColor = '#1a2b3c';
$stringable = Str::of($hexColor)->after('#');
$colorValue = intval($stringable, 16);
// After: Staying in the fluent chain
$colorValue = Str::of($hexColor)
->after('#')
->toInteger(16);
También puedes usar esto en escenarios de manipulación de strings más complejos:
// Extraer y convertir un valor hexadecimal de una cadena de datos
$data = 'Config: temp=0x2A, mode=0x01';
$temperature = Str::of($data)
->between('temp=', ',') // Extract "0x2A"
->replaceFirst('0x', '') // Remove "0x" prefix
->toInteger(16); // Convert to decimal (42)
El parámetro base acepta valores de 2 a 36, siguiendo las mismas reglas que la función intval() nativa de PHP, lo que le brinda flexibilidad para una amplia gama de necesidades de conversión.
Fuente: Harris Raftopoulos
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión