{
"path": "/2014/08/31/php-56-funcoes-variadicas-nova-sintaxe/",
"site": "at://did:plc:xsx3bphrwkgeo3qnfjhzmdra/site.standard.publication/3me7k4wsueo2b",
"tags": [
"php",
"portugues"
],
"$type": "site.standard.document",
"title": "PHP 5.6 - Funções Variádicas (Nova Sintaxe)",
"description": "O PHP 5.6.0 trouxe aos desenvolvedores novas funcionalidades e formas de trabalhar. Uma das melhores novidades é a nova sintaxe das funções variádicas.",
"publishedAt": "2014-08-31T09:37:05Z",
"textContent": "Há pouco mais de dois dias, foi lançada uma nova versão do PHP, a versão 5.6.0 que trouxe inúmeras novidades e incompatibilidades com as versões anteriores (ver aqui). Hoje vamos falar de uma das diversas grandes novidades desta esplêndida atualização, as funções variádicas. Ao longo das versões 4.x e 5.x do PHP, os desenvolvedores já podiam utilizar funções variádicas através do uso da função Se, por exemplo, quiséssemos criar uma função que fizesse a soma de todos os valores passados nos argumentos, bastaria fazermos assim: function soma() { return arraysum(funcgetargs()); } echo soma(1, 4, 12, 20); // => 37 Apesar desta forma ainda estar disponível na versão 5.6.0, a sua sintaxe pode ser aprimorada para a seguinte: function soma(...$nums) { return arraysum($nums); } echo soma(1, 4, 12, 20); //= 37 Ou seja, na nova versão do PHP, basta utilizarmos o operador ... para criarmos um array que contenha todos os restantes parâmetros enviados. Perda de tempo menor Uma vantagem na utilização deste método é a menor perda de tempo. Como assim? Vou utilizar um exemplo dado pelos colegas do imasters.com.br. Em vez de escrevermos assim: public function tryMethod() { $args = funcgetargs(); $method = $args[0]; unset($args[0]); $args = arrayvalues($args); try { return calluserfuncarray([$this, $method], $args); } catch (Exception $e) { return false; } } Podemos, simplesmente, escrever da seguinte forma: public function tryMethod($method, ...$args) { try { return calluserfuncarray([$this, $method], $args); } catch (Exception $e) { return false; } } Legibilidade Simples, não é? Outra grande vantagem é a legibilidade visto que o código fica mais legível utilizando esta sintaxe. O exemplo acima é, também, um bom exemplo para este ponto. Conclusão Falando mais no geral e vendo a lista de novas funcionalidades/alterações da nova versão do PHP, podemos verificar que a versão traz muitas melhorias. > O que acham vocês, leitores e desenvolvedores, desta nova versão do PHP?"
}