segunda-feira, 15 de julho de 2013

Fica a Dica da Semana Digital Max


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