Laravel вдосконалив свій клас Stringable, додавши до методу toInteger() параметр бази. Це значно спростило обробку шістнадцяткових, двійкових та вісімкових рядків у ваших застосунках.
Розробникам часто потрібно перетворювати рядкові представлення чисел у різних системах числення. Раніше для цього доводилося виходити за рамки флюентних операцій Laravel і використовувати рідні функції PHP. Оновлений метод toInteger() дозволяє виконувати ці перетворення безперешкодно в рамках ланцюгів маніпуляцій зі рядками.
Ось приклад роботи методу:
// Перетворення шістнадцяткового рядка на ціле число
$value = Str::of('2F')->toInteger(16); // Повертає 47
// Перетворення двійкового рядка на ціле число
$value = Str::of('11001')->toInteger(2); // Повертає 25
// Перетворення вісімкового рядка на ціле число
$value = Str::of('644')->toInteger(8); // Повертає 420
Це нововведення особливо корисне при роботі з такими форматами, як кольорові коди, двійкові дані або налаштування конфігурацій, що використовують не десятинні числові системи. Розгляньте цей приклад обробки шістнадцяткового кольору:
// Раніше: вихід за межі флюентного ланцюга
$hexColor = '#3f8ac2';
$stringable = Str::of($hexColor)->after('#');
$colorValue = intval($stringable, 16);
// Тепер: підтримка флюентності
$colorValue = Str::of($hexColor)
->after('#')
->toInteger(16);
Цей метод легко інтегрується з іншими функціями маніпуляції рядками, що дозволяє виконувати складніші операції:
// Парсинг та перетворення шістнадцяткового значення з даних з датчика
$data = 'Sensor: reading=0x4B, status=0x03';
$reading = Str::of($data)
->between('reading=', ',') // Витягує "0x4B"
->replaceFirst('0x', '') // Видаляє префікс "0x"
->toInteger(16); // Перетворює в десяткову (75)
Метод дотримується тих самих принципів, що й рідна функція intval() у PHP, і параметр бази підтримує значення від 2 до 36, що надає вам гнучкість при обробці чисел у різних системах, зберігаючи елегантний флюентний синтаксис Laravel