Executando verificação de segurança...
5

ajuda com a inclusão de funções nativas da linguagem

Você pode usar a função implode, que serve justamente para juntar elementos de um array. Esta função também já trata do caso em que tem apenas um elemento.

Depois, basta concatenar o resultado com o ponto:

function listInLine($list): string {
    if(!is_array($list)) $list = (array)$list;
    return implode(', ', $list). '.';
}
Carregando publicação patrocinada...
3

Exato! Poderia tipar a entrada da função como array também, já eliminaria essa verificação.

function listInLine(array $list = []): string {
    return is_null($list) ? '' : implode(', ', $list). '.';
}
1

Ilustre Douglas Silvestrini ou simplesmente sivestrini neste ponto:

Ah os nomes são dados em formato de objecto ou array

Falo que dados podem ser fornecidas como listas de dois formatos.

Será que teria como validar nos parametros dois formato? (reduziria muito mais a função)

2

Verdade, esqueci do objeto. Como você fez um type cast do array transformando-o em objeto, ele vai ser do tipo stdClass, então dá pra tipar também.

function listInLine(stdClass|array $list): string {
    // força a ser array
    $list = (array) $list;
    return is_null($list) ? '' : implode(', ', $list). '.';
}
2
2

Viva viva! kht ou "Hugo Kotsubo", desde já muito obrigado pelo teu valioso contributo, ainda não estou acreditando dava para reduzir as minhas mais de 10 linhas em apenas 3 😂.

Estou correndo para testar...

2

Viva esse emplode é uma beleza, funciona que é uma beleza 🤩️ ...
Ainda estou estudando a mágica, tanto em array de um só item como de mais de um funciona maravilhosamente...

valeukht