Задать вопрос
@serikd

Считается ли плохой практикой выражения в значениях массива?

Как предпочтительней писать?
$value = Class::do($data);
$arr = ['key' => $value];
//vs
$arr = ['key' => Class::do($data)];
//vs
$arr = ['key' => function() {
    return Class::do($data);
}];


И что можно почитать, типа лучшие практики или что то в этом роде, чтобы не возникало подобных вопросов.
Или только github? )
  • Вопрос задан
  • 165 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
muhammad_97
@muhammad_97
PHP-разработчик
Первое. Просто потому, что такой код легче читается. Третий пример некорректен, т.к. массив будет содержать замыкание, а не результат функции.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@SergeyZelensky-Rostov
$arr['key'] = Class::do($data);
Ответ написан
Комментировать
@karminski
Senior React.JS Developer
Если значение $value нигде больше не будет использоваться, то нормален второй вариант. Третий вариант не работает, т.к. $data внутри Closure не объявлено. Вероятно нужно было написать так:
$arr = ['key' => function($data) {
    return Class::do($data);
}];
Ответ написан
Marcuzy
@Marcuzy
php разработчик
По-моему, все варианты приемлемы, но каждый по ситуации:
  1. Если выражение длинное и сложное
  2. Выражение короткое и простое
  3. Если нужно произвести ленивое вычисление.

Также важно наличие других ключей.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽