Larback - Retornando conhecimento

Você não precisa ser o java, mas deve ter alguma classe.

Passagem de parâmetros por referência em PHP

Por padrão, a passagem de parâmetros para funções é feita por valor, ou seja, apenas o valor contido na variável é enviado a função (uma cópia deste valor) e não a variável propriamente.
<?php

function teste($x) {
	$x = $x + 1;
	
}
$x = 2;
teste($x);
echo $x;
?>

Ao executarmos o código anterior, o valor impresso será 2. As alterações feitas pela função não alteram o valor da variável $x existente fora do escopo da função.

Agora, e se desejassemos alterar o valor da variável $x (esqueça variáveis globais por hora)? Podemos enviar para a função uma referência a variável $x em vez de uma cópia do valor contido nela. Para isto, basta acrescentarmos o & antes da declaração do parâmetro da função:
<?php

function teste(&$x) {
	$x = $x + 1;
	
}
$x = 2;
teste($x);
echo $x;
?>
Ao executarmos este código, a saída será 3. As alterações feitas dentro da função foram armazenadas no endereço de memória para o qual a variável $x aponta, assim, elas afetam o valor desta fora da função. Agora mais um teste, simples e malicioso... qual será a saída para o código abaixo:
<?php

function teste(&$x,&$y) {
	$x = $x + 1;
	$y = $y + 1;
}
$x = 2;
teste($x,$x);
echo $x;
?>


Bons estudos