Como retornar vários valores de uma função PHP

Usamos principalmente parâmetros de função para obter dados externos dentro de uma função para processamento adicional. Da mesma forma, retornamos valores de uma função PHP para obter acesso aos dados processados ​​fora da função. Você pode definir funções em PHP com ou sem um valor de retorno.

Embora uma função no PHP possa ter vários parâmetros, não é possível que ela tenha várias instruções de retorno. Neste tutorial, mostraremos como retornar vários valores de uma função em PHP.

Declarações de retorno em PHP

Funções em PHP podem ter um opcional return demonstração. Quando chamado de dentro de uma função, uma instrução return imediatamente interrompe a execução de qualquer código adicional. Isso também inclui outras declarações de retorno. Aqui está um exemplo:

Duas coisas que você notará aqui são que a execução do código acima não ecoa a declaração sobre o valor de $y. Isso ocorre porque a função interrompe a execução após a primeira instrução de retorno. Se você descomentar a linha onde usamos list() para atribuir valores de variáveis, tanto $m e $n vai ser NULL Porque list() só funciona com arrays e a função está retornando apenas um número.

Usando uma matriz para retornar vários valores

Sabemos que uma instrução return pode retornar qualquer tipo de valor. Portanto, também podemos usá-lo para retornar um array que conterá todos os valores que realmente queremos retornar. Podemos reescrever o exemplo acima da seguinte forma para retornar vários valores:

Da perspectiva do PHP, você ainda está retornando um único valor, mas esse valor único é um array que pode conter vários outros valores. Essa é uma das maneiras mais fáceis em PHP de simular o retorno de vários valores por uma função.

Estamos retornando apenas dois valores no exemplo acima. No entanto, as coisas podem ficar um pouco complicadas quando um número maior de valores está envolvido porque você precisa manter a ordem correta dos valores retornados em mente.

A partir do PHP 7.1, você pode usar list() com matrizes associativas. Isso significa que a ordem na qual você retorna os elementos não afetará os valores atribuídos. Aqui está um exemplo:

Você pode ver que as variáveis $m e $n obter os mesmos valores em ambos os casos porque os valores agora estão sendo atribuídos com base em chaves em vez de índices numéricos.

Você nem precisa usar list() do PHP 7.1 em diante porque o PHP agora suporta sintaxe de desestruturação. Poderíamos reescrever o exemplo anterior como:

Usando um objeto para retornar vários valores

Outra maneira de retornar vários valores de uma função PHP é retornar um objeto. Podemos definir uma classe com propriedades diferentes usando variáveis ​​de membro público. Uma desvantagem dessa técnica é que você terá que escrever mais código e consumirá mais memória para armazenar várias instâncias da classe. A vantagem é que você poderá usar o mesmo conjunto de variáveis ​​em vários lugares.

Como você pode ver, conseguimos obter vários valores da função com sucesso simplesmente criando um objeto e atribuindo os valores às suas várias propriedades.

Pensamentos finais

Neste tutorial, aprendemos que o PHP não permite retornar vários valores diretamente de uma função. No entanto, você pode contornar essa limitação empacotando vários valores como uma matriz ou um objeto. Depois disso, basta retornar o array ou objeto da função e acessar os valores posteriormente.

Deixe um comentário

O seu endereço de e-mail não será publicado.