Несколько типов аргумента метода

81
18 января 2021, 00:00

Написал метод для класса:

public function setOption(string $field, $value) : self {
    $this->options[$field] = $value;
    return $this;
}

Теперь требуется доработать этот метод, чтобы он мог принимать в аргументе $field массив, и в зависимости от типа данных производит другие действия.

Есть ли в php механизм перезагрузки методов, например как в с++ ?

Я где-то видел, что можно писать так: string|array $field но помню, что по этому поводу были отрицательные отзывы из-за каких-то ошибок.

Не подскажите как решить проблему? какие есть варианты и к каким ошибкам могут приводить перечисление нескольких типов? или это нормальная практика?

Строгую типизацию требуется поддержать. Решение желательно не костыльное (на подобие проверок на тип данных и выбрасыванием исключений).

READ ALSO
В чём разница между {$x} и ${x}?

В чём разница между {$x} и ${x}?

В php есть минимум 3 способа вставки переменной в строку:

134
Разделение строки на равные части

Разделение строки на равные части

Я сделал сделал разделение строки на равные части с хвостом:

186
Кто знаком с phpQuery?

Кто знаком с phpQuery?

Есть много одинаковых классов, и она все парсятся нормально, выходит 100 классов, но когда я с этих классов парсю href то парсит только только...

98