<?php
#################################################
## TESTANDO PASSAGEM DE PARAMETRO POR ARRAY
#################################################
function muda_array($k) {
$k[] = 1;
}
$arr = array();
muda_array($arr);
//print Variavel em array:
print("Variavel em array: $arr[0]\n");
#################################################
## TESTANDO PASSAGEM DE PARAMETRO POR OBJETO
#################################################
class Abc {
public $abc = 0;
public function setaVariavel($a) {
$this->abc = $a;
}
}
function muda_classe($k) {
$k->setaVariavel(1);
}
$k = new Abc();
muda_classe($k);
//print Variavel em classe: 1
print("Variavel em classe: $k->abc \n");
exit;
?>
Para no primeiro exemplo o array ser alterado após executar o método muda_array, precisamos configurar o parâmetro k como sendo de referência e não por valor, sendo assim mudamos o método para
function muda_array($k) {
$k[] = 1;
}
Se você rodar a aplicação novamente depois dessa alteração perceberá que o array é alterado apoós a execução do método muda_array.
Um link que explica isso perfeitamente AQUI!

