Php, как пропустить аргументы по умолчанию при установке аргументов vardic?Php

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

Сообщение Anonymous »

Хорошо, у меня есть существующий метод:

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

public function dbQuery(string $query, bool $flag1 = false, int $flag2 = SOME_DEFAULT, bool $flag3 = false)
теперь я хочу адаптировать его, чтобы можно было передавать значения привязки в качестве аргументов vardic, но не нарушая текущий интерфейс (я знаю, что флаги 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]);
    , но он отображается как массив в первом аргументе vardic, например. $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 явно показано, что именованные аргументы по умолчанию перед vardics являются допустимыми подпись, а не как получить доступ к вардикам.

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

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

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

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

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

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

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