Por que não usamos referência ao alterar saldo sacando e depositando mas, para alterar uma string precisou dela? Tipo, quando chamamos a função sacar, que está sem o "&" não altera o valor do saldo da conta no arquivo banco.php?
Por que não usamos referência ao alterar saldo sacando e depositando mas, para alterar uma string precisou dela? Tipo, quando chamamos a função sacar, que está sem o "&" não altera o valor do saldo da conta no arquivo banco.php?
O Instrutor também poderia ter feito as funções sacar e depositar utilizando os valores por referência. O que ele fez ao invés disso foi retornar uma "cópia" do array com os valores alterados, e substituiu o array original por essa cópia alterada. Repare que ao chamar a função sacar e depositar ele faz o seguinte:
As funções sacar/depositar retornam a "cópia alterada" de $contasCorrentes['123456789']
E na hora de chamar a função, ele atribui o retorno dessa função para o array original. Desta forma:
$contasCorrentes['123456789'] = sacar(...);
E quando ele passa o parâmetro para esse função por referência, essa lógica não é mais necessária.
Olá Gabriel,
O Murilo já explicou bem as possibilidades, mas só para completar, também é uma boa prática evitar passar um valor por referência porque deixa o código um pouco mais complexo e pode causar resultados inesperados.