@rumasterov

Как зарефакторить много isset вызовов в методе?

Есть клиент для отправки запросов в api одной из социальных сетей, есть следующий код:
<?php

class Client
{
    public function getFriends($params)
    {
        $requestParams = [];

        if (isset($params['user_id'])) {
            $requestParams['user_id'] = $params['user_id'];
        }

        // и тут дальше множество таких же проверок для других полей
    }
}


Суть в следующем, надо сформировать запрос с набором полей, пользователь класса передает массив с параметрами, чтобы убедиться что установлены требуемые параметры вызывается isset() и если оно установлено - записывается в запрос. Таким образом какие-то неправильные параметры не попадут в запрос. Но меня смущает это множество if (isset()) или это ок?
  • Вопрос задан
  • 143 просмотра
Решения вопроса 2
evgeniy2194
@evgeniy2194
PHP, js developer
foreach ($params as $key => $param) {
    $requestParams[$key] = $param;
}
Ответ написан
uDenX
@uDenX
PHP Developer
Что-то типа того:
$requiredParams = ['1', '2'];
$requestParams = [];

foreach ($requiredParams as $param) {
    if (!array_key_exists($param, $params) {
        //Кидаем исключение
    }

    $requestParams = $params[$param];
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы