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). '.';
}
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). '.';
}
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)
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.
```php
function listInLine(stdClass|array $list): string {
// força a ser array
$list = (array) $list;
return is_null($list) ? '' : implode(', ', $list). '.';
}
```
Uau! Agora minha sonhada função (acredito que vou preferir usá-la como uma class) está completa. Valeu de coração `Sivestrini`.
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...
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