Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Disciplina: Tópicos Especiais em TI – PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade ao curso. Livro: Desenvolvendo Websites com PHP Apostila da Divisão de Serviços à Comunidade – Centro de Computação – Unicamp Funções Funções são pequenas seções independentes de código que podem ser chamadas a qualquer momento e em qualquer ordem, que servem para desempenhar tarefas específicas dentro dos scripts. Sintaxe Básica: function nome_funcao( arg1, arg2, arg3, ..., argn ) { Commandos [ return <expressão>] } function soma ($a, $b) { $c = $a + $b; return $c; } echo "A funcao soma() retornou ==> ".soma(5,10); Exemplo: <?php function soma_valores ($valor1 , $valor2 , $valor3) { $soma = $valor1 + $valor2 + $valor3; echo "A soma dos valores $valor1, $valor2 e $valor3 "; echo "é $soma"; } $n1 = 10; $n2 = 20; $n3 = 50; soma_valores ($n1, $n2, $n3); ?> A instrução return é opcional, já que não é obrigatório retornar algum valor em funções no PHP. Outra regra é a de não permitir que sejam retornados múltiplos valores através desta instrução. Para resolver essa necessidade, pode-se retornar listas e arrays, como mostra o exemplo a seguir: function soma ($a, $b) { $c = $a + $b; $d = $c - 5; return array($c,$b,$d) } 2 list ($f,$g,$h) = soma(10,10); echo $f.”<br>”; echo $g.”<br>”; echo $h.”<br>”; • Passagem de parâmetros por referência: Normalmente, a passagem de parâmetros em PHP é feita através dos valores das variáveis, não permitindo assim, a alteração do valor na variável original, como mostra o exemplo a seguir: function contador($a) { ++$a; } $cont = 10; contador($cont); echo "A variavel <b>cont</b> contem ==> ".$cont; No exemplo acima, a variável original permanecerá com o mesmo valor porque não foi definida a passagem de parâmetros por referência, o que alteraria também o valor da variável original. Uma das maneiras de se utilizar esse recurso é colocar o caracter ''&'' antes do nome da variável na declaração da função, como mostra o exemplo a seguir: function contador(&$a) { ++$a; } $cont = 10; contador($cont); echo "A variavel <b>cont</b> contem ==> ".$cont; Poderíamos também utilizar a passagem de parâmetros por referência apenas quando fossemos chamar a função, e não em sua declaração: contador(&$cont); echo $cont; Outro exemplo: <?php function dobro ($valor) { $valor = 2 * $valor; } function duplica (&$valor) { $valor = 2 * $valor; } $valor = 5; dobro ($valor); echo $valor . "<br>"; duplica ($valor); 3 echo $valor; ?> Funções Recursivas São aquelas que chamam a elas mesmas. Veja o seguinte exemplo: <?php function teste ($valor) { if ($valor!=0) { echo "Foi chamada a função teste passando o valor $valor <br>"; teste ($valor-1); } } teste (7); ?> Definição de classe Classes são agrupamentos de variáveis e funções. Uma classe é utilizada para descrever um objeto. Um objeto poderá utilizar todas as variáveis e funções existentes na sua classe. A sintaxe utilizada é a seguinte: class nome_classe { <procedimentos> } Para criar variáveis dentro de uma classe utilizamos a instrução var. Podemos também utilizar a variável $this responsável por referenciar o objeto utilizado. Para criar um objeto de determinada classe utilizamos a palavra new seguida do nome da classe. O objeto da classe pode acessar suas variáveis e funções através do símbolo ->. Exemplo: <?php class Loja { var $itens; function adiciona ($codigo, $quantidade) { if(isset($this->itens[$codigo])) $this->itens[$codigo] += $quantidade; else $this->itens[$codigo] = $quantidade; } } $estoque = new Loja; $estoque->adiciona("bermuda",2); 4 $estoque->adiciona("camiseta",3); echo "A loja já possui " . $estoque->itens["bermuda"] . " bermudas.<br>"; echo "A loja já possui " . $estoque->itens["camiseta"] . " camisetas.<br>"; ?> As palavras-chave private e protected Utilizando as palavras “private e protected” podemos criar métodos ou variáveis privadas e protegidas em uma classe. Uma variável privada só poderá ser acessada pela própria classe onde ela foi declarada, enquanto que uma variável protegida poderá ser acessada também pelas subclasses da classe onde ela foi declarada. Para definir uma subclasse basta utilizar a palavra extends. Exemplo: <?php class Classe1{ private $var1=”Olá, var1!\n”; protected $var2=”Olá, var2!\n”; function bomDia() { echo “Classe1: “ . $this->var1 . “<br”; echo “Classe1: “ . $this->var2 . “<br”; } } class Classe2 extends Classe1 { function bomDia() { echo “Classe2: “ . $this->var1 . “<br”; echo “Classe2: “ . $this->var2 . “<br”; } } $obj = new Classe1(); $obj->bomDia(); echo “--------- Classe2 ----------- “; $obj = new Classe2(); $obj->bomDia(); ?> Construtores e Destrutores Um construtor consiste em um método que será chamado toda vez que for criado um objeto da classe onde ele foi declarado. Portanto, pode ser utilizado para inicializar um objeto antes dele ser usado. A sintaxe utilizada é a seguinte: <?php class Classe{ function __construct(){ } function __destruct(){ } 5 Fontes: Livro: Desenvolvendo Websites com PHP Apostila da Divisão de Serviços à Comunidade – Centro de Computação – Unicamp
Compartilhar