Аргумент "непустой индексный массив строк" на чистом PHP и с использованием Psalm:



function native(string $name, string ...$names): void

{

foreach ([$name, ...$names] as $name) {

// ...

}

}



/**

* @psalm-param non-empty-list<string> $names

*/

function psalm(array $names): void

{

foreach ($names as $name) {

// ...

}

}



Оба варианта по-своему интересны, выбирайте исходя из типичного контекста использования функции/метода.



Если аргументы объявляются при вызове, я советую использовать оператор ... Например, в билдере SQL запросов колонки удобнее передавать аргументами:



$db

->select('respondent_id', 'value')

->from('evaluation')



В остальных случаях передаваемое значение скорее всего уже будет "на руках" в виде списка, поэтому аргумент лучше объявить массивом.