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

Функция optional

Функция optional применяется к объекту, который может быть null, и позволяет безопасно обращаться к его свойствам и методам. Если объект не равен null, функция возвращает сам объект, иначе возвращается экземпляр класса Illuminate\Support\Optional, у которого все вызовы методов и обращения к свойствам возвращают null.

Синтаксис

<?php optional($object)->property; optional($object)->method(); optional($object, function($obj) { return $obj->method(); }); ?>

Пример

Давайте получим свойство 'title' у объекта статьи, который может быть null:

<?php use AppModelsArticle; $article = Article::find(1); $title = optional($article)->title; echo $title; ?>

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

"article 1"

Пример

Если объект не найден, функция optional предотвращает ошибку и возвращает null:

<?php use AppModelsArticle; $article = Article::find(999); $title = optional($article)->title; var_dump($title); ?>

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

null

Пример

Функция optional также позволяет безопасно вызвать метод объекта. Давайте вызовем метод getFullName у объекта пользователя:

<?php use AppModelsUser; $user = User::find(1); $fullName = optional($user)->getFullName(); echo $fullName; ?>

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

"John Doe"

Пример

Вторым параметром можно передать замыкание, которое выполнится только если объект не равен null:

<?php use AppModelsUser; $user = User::find(1); $res = optional($user, function($obj) { return $obj->getFullName() . ' (' . $obj->email . ')'; }); echo $res; ?>

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

"John Doe (john@example.com)"

Пример

Если объект равен null, замыкание не выполнится, и функция вернёт null:

<?php use AppModelsUser; $user = User::find(999); $res = optional($user, function($obj) { return $obj->getFullName() . ' (' . $obj->email . ')'; }); var_dump($res); ?>

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

null

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

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