РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
969 of 1392 menu

Функция transform

Функция transform принимает два параметра: значение и замыкание для его преобразования. Если переданное значение не равно null, то функция выполняет замыкание и возвращает его результат. В противном случае возвращается null. Это удобно для безопасной обработки данных, которые могут отсутствовать.

Синтаксис

<?php transform($value, callback); ?>

Пример

Давайте преобразуем строку в верхний регистр, если она существует:

<?php $name = 'john'; $res = transform($name, function ($value) { return strtoupper($value); }); echo $res; ?>

Результат выполнения кода:

"JOHN"

Пример

Если переданное значение равно null, функция вернёт null:

<?php $name = null; $res = transform($name, function ($value) { return strtoupper($value); }); var_dump($res); ?>

Результат выполнения кода:

"NULL"

Пример

Давайте обработаем массив данных из запроса:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; class UserController extends Controller { public function show(Request $request) { $user = $request->user(); $name = transform($user, function ($value) { return $value->name; }); return view('profile', ['name' => $name]); } } ?>

В этом примере если пользователь авторизован, то мы получим его имя. Если пользователь не авторизован, переменная $name будет равна null.

Пример

Функцию можно использовать для получения вложенных данных:

<?php $data = [ 'user' => [ 'profile' => [ 'age' => 25 ] ] ]; $age = transform($data['user']['profile'] ?? null, function ($profile) { return $profile['age'] ?? null; }); echo $age; ?>

Результат выполнения кода:

"25"

Пример

Давайте преобразуем число в форматированную строку:

<?php $number = 1234.56; $res = transform($number, function ($value) { return number_format($value, 2, '.', ','); }); echo $res; ?>

Результат выполнения кода:

"1,234.56"

Пример

Функцию можно использовать для безопасного преобразования значений из коллекции:

<?php use IlluminateSupportCollection; $users = new Collection([ ['name' => 'john', 'age' => 25], ['name' => 'jane', 'age' => null], ['name' => 'bob', 'age' => 30] ]); $names = $users->map(function ($user) { return transform($user['name'], function ($value) { return ucfirst($value); }); }); print_r($names->toArray()); ?>

Результат выполнения кода:

["John", "Jane", "Bob"]

Смотрите также

  • функция optional,
    которая безопасно обращается к свойствам объектов
  • функция tap,
    которая выполняет действие с переданным значением и возвращает его
  • функция value,
    которая возвращает значение или результат замыкания
  • функция with,
    которая возвращает значение и выполняет замыкание
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить