Buscar

4 Você e seu colega criam uma função para reajustar o valor de forma a oferecer um desconto base, cujo valor pode ser dobrado se o usuário atender ...

4 Você e seu colega criam uma função para reajustar o valor de forma a oferecer um desconto base, cujo valor pode ser dobrado se o usuário atender a certas condições. A função está exemplificada abaixo: function calcularValorFinal($valor, $descontoBase, $dobrarDesconto){ if($dobrarDesconto){ $valor = $valor * (100 - $descontoBase * 2)/100; } else { $valor = $valor * (100 - $desconto Base)/100; } Devido à arquitetura do sistema, vocês não podem retornar o conteúdo de $valor usando um return. Em outras palavras, isto significa que deve ser possível fazer o seguinte: $valor = 500; calcularValorFinal($valor, 15, false); echo $valor; // imprime 425 Assim, uma alternativa para essa situação é
Passar o parâmetro valor por referência.

Essa pergunta também está no material:

Compilado - Prova Linguagens de Servidor
3 pág.

💡 1 Resposta

User badge image

Ed Verified user icon

Sim, uma alternativa para essa situação é passar o parâmetro $valor por referência, adicionando o símbolo "&" antes do nome do parâmetro na definição da função. Dessa forma, a variável $valor será alterada diretamente na função e a alteração será refletida fora dela. Por exemplo: function calcularValorFinal(&$valor, $descontoBase, $dobrarDesconto){ if($dobrarDesconto){ $valor = $valor * (100 - $descontoBase * 2)/100; } else { $valor = $valor * (100 - $descontoBase)/100; } } Dessa forma, ao chamar a função e passar o parâmetro $valor, ele será alterado diretamente na função e a alteração será refletida fora dela.

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais