Ir para conteúdo
Fórum Script Brasil
  • 0

Modificador "&"


IvaniseIvy

Pergunta

Tenho este código:

function mais5 (&$num1, $num2){

$num1 + = 5;

$num2 + = 5;

}

$a=$b=1;

mais5 ($a, $b);

mais5 ($a, &$b);

Ok. Alguém poderia me explicar por que q no segundo mais5, as duss variáveis terão seus valores alterados? Eu entendí como funciona o "&" utilizado na declaração do parâmetro $num1; não consigo visualizar o modificador funcionado corretamente após ter saído da função (o valor de $b não será 1 em qualquer uma das opções acima?)

Obrigada, por enqto.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Este código se trata de passagem por referência e por valor. A passagem por referência faz com que o endereço de memória em que uma variável foi alocada e posteriormente teve o seu valor modificado é passado para uma função assim, qualquer alteração no valor desta variável permanece após o uso de uma função. Na passagem por valor o valor de uma variável é copiado para outra variável de modo que o valor a ser alterado na cópia desta variável não altera o valor da variável original sendo este perdido após o término do uso da função.

Neste caso está definido a passagem por referência da primeira variável que será alterada com a chamada da primeira função.

function mais5 (&$num1, $num2)
Na segunda chamada é demonstrada que uma variável pode ser passada por referência na chamada da função também e, assim, as duas variáveis terão seus valores alterados. Pois, a função mais5 possui a primeira variável com o modificador & e a chamada para a função mais5 mostra a segunda variável com este modificador.
mais5 ($a, &$b);

Espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

  • 0

Não vou dizer q entendí plenamente; porém não estou viajando de tudo.

Veja se está correto, então: Eu poderia ter utilizado

function mais5 (&$num1, &$num2)
ou
mais5 (&$a, &$b);
q em qualquer um dos dois funcionaria da mesma forma e o valor total seria 6 para as duas variáveis. Obs.: se eu utilizo o primeiro exemplo o segundo fica:
mais5 ($a, $b);
e se eu uso o segundo exemplo, o primreiro fica:
function mais5 ($num1, $num2)

.

Correto?

Link para o comentário
Compartilhar em outros sites

  • 0

Ninguém mais teria algum conceito formado além do Rafael?

Caraca! Fazer o curso sem ter com quem tirar as dúvidas é muito complicado, pois você acaba não indo adiante por medo de interpretar errado.

Espero q alguém possa dar sua opinião.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...