Arr :: get () против data_get () в Laravel 5.7 - PullRequest
1 голос
/ 15 марта 2019

С помощью вспомогательной функции data_get() мы можем получить значение вложенного массива, используя обозначение точки . следующим образом:

$my_arr = [
    'a' => ['lower' => 'aa', 'upper' => 'AAA',], 
    'b' => ['lower' => 'bbb', 'upper' => 'BBBBB',],
];

Таким образом, я могу получить меньшее a, выполнив это.

data_get($my_arr, 'a.lower');

И вы также делаете следующее.

Arr::get('a.lower');

В случае, если я просто хочу получить только первый уровень массива.Я просто могу сделать оба:

data_get($my_arr, 'a');

ИЛИ

Arr::get($my_arr, 'a');

Какой из них вы мне порекомендуете и почему?Я просто хочу продолжать совершенствовать свой опыт работы с Laravel и получать хорошие советы от старших разработчиков, чтобы выбрать лучшие варианты на данный момент.

1 Ответ

1 голос
/ 15 марта 2019

Это зависит от контекста, чтобы решить, какой из них использовать.

1. Подстановочный знак

Если вам нужно использовать подстановочный знак в вашем индексе, вы должны использовать data_get, поскольку Arr::get не поддерживает подстановочные знаки.

Пример:

Arr::get($my_arr, '*.lower'); // null
data_get($my_arr, '*.lower'); // ["aa", "bbb"]

2. Тип переменной

Arr::get просто предполагает, что ваша переменная является массивом. Поэтому, если вы используете объект, вы должны пойти с data_get. Однако, если вы уверены, что ваша переменная является массивом и вам не нужны подстановочные знаки, вам следует перейти к Arr::get, чтобы избежать ненужных проверок из data_get, который оценивает, является ли ваша переменная объектом или массивом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...