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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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.