Как пропустить именованные аргументы по умолчанию при установке именованного вариативного аргумента в вызове функции?Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как пропустить именованные аргументы по умолчанию при установке именованного вариативного аргумента в вызове функции?

Сообщение Anonymous »

У меня есть существующий метод:

Код: Выделить всё

public function dbQuery(
string $query,
bool $flag1 = false,
int $flag2 = SOME_DEFAULT,
bool $flag3 = false
)
Теперь я хочу адаптировать его, чтобы можно было передавать значения привязки в качестве переменных аргументов, но не нарушая текущий интерфейс (я знаю, что флаги arg являются антишаблоном), чтобы быть :

Код: Выделить всё

public function dbQuery(
string $query,
bool $flag1 = false,
int $flag2 = SOME_DEFAULT,
bool $flag3 = false,
mixed ...$params
)
Как мне затем вызвать dbQuery, сохраняя флаги по умолчанию при передаче параметров?
Я пробовал:
  • Код: Выделить всё

    ->dbQuery('my query', params: [1, 2, 3]);
    , но он отображается как массив в первом аргументе с переменным числом аргументов, например. $params = [[1, 2, 3]]
  • Код: Выделить всё

    ->dbQuery('my query', params: ...[1, 2, 3]);
    имеет неверный синтаксис.
  • Код: Выделить всё

    ->dbQuery('my query', ...['params' => [1, 2, 3]]);
    тот же результат, что и у варианта 1.
Ничего подобного использования не показано в:
https://wiki.php.net /rfc/variadics
или https://wiki.php.net/rfc/named_params
Хотя в более позднем RFC явно показано, что именованные аргументы по умолчанию перед вариационными параметрами являются допустимыми. подпись, но не как получить доступ к вариациям.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ument-in-a
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»