SóProvas


ID
1750792
Banca
FCC
Órgão
TRE-AP
Ano
2015
Provas
Disciplina
Programação
Assuntos

Considere o código PHP a seguir: 

                                 <?php

                                     function a($v){

                                         $v=2*$v;

                                      }

                                      function b(&$v){

                                          $v=2*$v;

                                       }

                                       $v=5;

                                       a($v);

                                       echo $v . " e ";

                                       b($v);

                                       echo $v;

                                  ?>


Ao executar este código será exibido 

Alternativas
Comentários
  • Os PARÂMETROS podem ou não ser modificados DENTRO da função. Quando colocamos o símbolo “&” antes do parâmetro, estamos passando o parâmetro por “REFERÊNCIA”. Desta forma, qualquer alteração no parâmetro DENTRO da função, irá refletir no parâmetro FORA da função.
    Porém, quando não usamos o símbolo “&”, estamos passando o parâmetro por “CÓPIA”, e qualquer alteração DENTRO da função, NÃO irá refletir FORA do mesmo.

     

    Fonte Provas de TI

  • O PHP é em grande parte inspirado no C, sabendo disso dava pra ver que o parâmetro com & seria passado por referência. Faltou um pouco de malícia pra banca, porque mesmo que ambos os casos duplicassem a resposta seria 10 e 20, e não existia essa opção;

     

  •  d-

    Apesar de a function() processar o parametro * 2, a variavel que é passada como parâmetro nao sera alterada. Além disso, o resultado da função nao é exibido no echo porque esta faltando return. 

    Quando se usa &, a função esta mexendo com o valor da variavel no endereço de memoria, alterando o valor que la esta armazenado. Logo, o echo sera sempre o valor atual cada vez que usar function (&$v);

  • Gloomy: "..... Além disso, o resultado da função nao é exibido no echo porque esta faltando return. "

    Cuidado com a afirmação. Em momento algum houve echo no retorno a chamada da função.