DICA DA SEMANA COM O PROFESSOR DE INFORMÁTICA JONATHAS MILITÃO
Olá alunos e visitantes do blog da Digital Max!
Vou trazer hoje uma dica muito importante para os estudantes de Informática que estão no módulo PHP. Creio que, a partir de hoje, o tópico sobre funções com passagem de parâmetros por valor e por referência irá tornar-se muito mais claro através deste exemplo. Esse é o objetivo! Portanto, mãos-a-obra!
Abra um editor de texto de sua preferência (no meu caso, o Gedit) e digite o seguinte código:
<?php
#Declaração de variáveis
$x = 10;
$y = 20;
#Definição da função TrocarValores, que fará a inversão dos mesmos.
function TrocarValores ($a, $b)
{
#variável Troca 'pega' o valor de A (10)
$troca = $a;
#a variável A 'pega' o valor da variável B (20)
$a = $b;
#E, por conseguinte, B 'pega' o valor da variável Troca (10)
$b = $troca;
}
#Chamando a função
TrocarValores ($x, $y);
#Imprimindo o valor das variáveis
echo "X é igual a: " .$x; /*Irá imprimir 10*/
echo "Y é igual a: " .$y; /*Irá imprimir 20*/
?>
Este é um exemplo clássico que mostra uma função recebendo parâmetros POR VALOR (a e b). A variável $a nesse caso refere-se a $x; enquanto a variável $b refere-se a variável $y. Na passagem de parâmetros por VALOR, não importa o que aconteça com a variável dentro de uma função: ela nunca irá perder o seu valor de origem, ou seja, $x será ainda 10 e $y será ainda 20. Sempre cito o seguinte exemplo: Imagine que seu amigo peça-lhe emprestado o seu trabalho de escola, que deverá ser entregue amanhã. Como você tem muita responsabilidade com esse trabalho, você empresta-lhe uma CÓPIA desse trabalho - e não o original. Caso o seu amigo perca o trabalho, por exemplo, nada irá acontecer: o seu trabalho permanece intacto! Esse é o sentido da passagem de parâmetros por VALOR.
Na passagem de parâmetros por REFERÊNCIA acontece exatamente o oposto. Nesse caso, você emprestaria o trabalho original! Se o trabalho fosse perdido, por exemplo, você estaria perdido! ;)
A única diferença a ser acrescentado no código acima, ou seja, passar uma variável por REFERÊNCIA, é acrescentando o caractere "&" antes da variável em questão. Dessa forma, digite agora o seguinte código:
<?php
$x = 10;
$y = 20;
function TrocarValores (&$a, $b)
{
$troca = $a;
$a = $b;
$b = $troca;
}
TrocarValores ($x, $y);
echo "X é igual a: " .$x ."<br>";
echo "Y é igual a: " .$y;
?>
Perceberam que o valor de $x mudou? $x agora é 20 (e não mais 10)!
Mas perceberam também que o valor de $y não mudou? É claro, o $y (20) foi passado como valor - ou seja - o seu valor não será alterado!
Espero ter ajudado a esclarecer esta dúvida. Lembrando que: caso pinte mais alguma outra dúvida, estarei a disposição para atende-los.
Um forte abraço!
Nenhum comentário:
Postar um comentário