Postagem

Aqui é onde faço postagens de coisas que acho interessante.

Passando parà¢metros de função por referência

Postagem do dia 01/01/1970 na categoria PHP



Por padrão, argumentos de função são passados por valor (de forma que se você mudar o valor do parà¢metro dentro da função, ele não é alterado fora da função). Para permitir que uma função modifique os seus argumentos, eles devem ser passados por referência.

Para ter um argumento para uma função sempre passado por referência, adicione antes dele um "e comercial" (&) ao nome do argumento na definição da função: ( Fonte)

Vamos criar uma variável e atribuir um valor e exibir seu conteúdo


<?php
	// Variavel que armazena um nome qualquer
	$nome = "Joao";
	
	// Exibindo o conteudo da variavel antes de adicionar sobrenome
	echo $nome;

O resultado impresso será: "Joao"

Agora vamos criar um método que altera o valor desta variável

<?php
	/**
	 * Metodo que recebe uma variavel pro referencia e adiciona
	 * uma string ao seu conteudo.
	 *
	 * O objetivo do metodo e adicionar o sobrenome na variavel $nome
	 * 
	 * */
	function adicionaSobrenome( &$nome )
	{
		// Adicionando sobrenome Pereira ao nome João
		// que está armazenado na variável $nome
		$nome .= " Pereira"; 
	}
	
	// Executando metodo 
	adicionaSobrenome( $nome );	

	// Exibindo o resultado
	echo $nome;

O resultado impresso será: "Joao Pereira"

Observe que em nenhum momento eu imprimir o retorno do método adicionaSobrenome( $nome );
O que aconteceu é que este método alterou o valor da variável sem que eu tivesse que pegar seu retorno e setar na variável



Deixe seus comentários abaixo: