Programação web ii aulas 06 e 07

24
PHP Funções; Classes

Transcript of Programação web ii aulas 06 e 07

Page 1: Programação web ii   aulas 06 e 07

PHP

• Funções;

• Classes

Page 2: Programação web ii   aulas 06 e 07

Definição de Função

function nome_função (arg1, arg2, arg3 ..., argn)

{

comandos

[ return <expressão> ]

}

Page 3: Programação web ii   aulas 06 e 07

Como criar uma função

<?phpfunction 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);?>

Page 4: Programação web ii   aulas 06 e 07

Utilizando o comando return em uma função<?phpfunction maiusculo($string) {

$string = strtoupper ($string);$string = str_replace(“á”, “Á”, String;);

...$string = str_replace (“ç”, “Ç”, $string);$string = str_replace (“à”, “À”, $string);

return $string;}$nome = “José Antônio”;$nome_m = maiusculo ($nome);echo “O nome do rapaz é $nome_m”;

?>

Page 5: Programação web ii   aulas 06 e 07

Função que retorna o triplo.

<?phpfunction triplo ($numero){

$x = $numero * 3;return $x;

}$valor = 5;echo “O triplo de $valor é” . triplo($valor);

?>

Page 6: Programação web ii   aulas 06 e 07

Função que retorna arrays

<?phpfunction clubes ( ){

$clube * + = “Grêmio”;$clube * + = “Palmeiras”;$clube * + = “Flamengo”;$clube * + = “Atlético Mineiro”;$clube * + = “Bahia”;return $clube;

}// inicio do programa principal$nomes = clubes( );for ( $i=0 ; $i < sizeof ( $nomes ) ; $i++ ){

echo “\$nomes[$i] vale $nomes[$i] <br>”}

?>

Page 7: Programação web ii   aulas 06 e 07

Exercício

Crie uma função que retorne a data atual no seguinte formato:Quarta-feira, 21 de Março de 2001.

Obs.: Utilize as funções time e getdate.

A função time retorna o tempo corrente em número de segundos desde 1º de janeiro de 1970, e a função getdate transforma esse tempo em um array com o dia, mês, ano, dia do mes.

*“wday”, “mon”, “year”,”mday”+.

Page 8: Programação web ii   aulas 06 e 07

Resposta:<?php

function retorna_data ( )

{

$agora = time( );

$data = getdate($agora);

//dias da semana

if($data["wday"] == 0){echo "Domingo";}

elseif($data["wday"] == 1){echo "Segunda-Feira";}

elseif($data["wday"] == 2){echo "Terça- Feira";}

elseif($data["wday"] == 3){echo "Quarta-Feira";}

elseif($data["wday"] == 4){echo "Quinta-Feira";}

elseif($data["wday"] == 5){echo "Sexta- Feira";}

elseif($data["wday"] == 6){echo "Sábado";}

// meses

if($data["mon"] == 1) {$mes = janeiro;}

elseif($data["mon"]==2) {$mes = fevereiro;}

elseif($data["mon"]==3) {$mes = março;}

elseif($data["mon"]==4) {$mes = abril;}

elseif($data["mon"]==5) {$mes = maio;}

elseif($data["mon"]==6) {$mes = junho;}

elseif($data["mon"]==7) {$mes = julho;}

elseif($data["mon"]==8) {$mes = agosto;}

elseif($data["mon"]==9) {$mes = setembro;}

elseif($data["mon"]==10) {$mes = outubro;}

elseif($data["mon"]==11) {$mes = novembro;}

elseif($data["mon"]==12) {$mes = dezembro;}

$data_atual = ", " . $data["mday"] . " de " . $mes . " de " . $data["year"];

return $data_atual;

}

$hoje = retorna_data ( );

echo $hoje;

?>

Page 9: Programação web ii   aulas 06 e 07

Passagem de parâmetros: valor e referência<?php

function dobro ($valor) // passagem por valor{

$valor = 2 * $valor;}function duplica(&$valor) // passagem por referência

{$valor = 2 * $valor;

}$valor = 5;dobro ($valor);echo $valor . “<br>”;duplica ($valor);echo $valor;

?>

Page 10: Programação web ii   aulas 06 e 07

Recursão

<?phpfunction Fatorial($numero){

if($numero == 1)return $numero;

elsereturn $numero * Fatorial($numero -1)

}echo Fatorial (5) . “\n”;echo Fatorial(7) . “\n”;?>

Page 11: Programação web ii   aulas 06 e 07

Definição de Classe• A classe é uma estrutura estática utilizada

para descrever objetos mediante atributos (propriedade) e métodos (funcionalidades).

Pessoa

+Codigo: integer+Nome: string+Altura: integer+Idade: integer+Nacimento+Escolaridade: string+Salario: float

+Crescer(centimetros:integer)+Formar(titulo:string)+Envelhecer(anos:integer)

Conta

+Agencia: integer+Codigo: string+DataDeCriacao: date+Titular: pessoa+Senha: string+Saldo: float+Cancelada: boolean

+Retirar(quantia:float)+Depositar(quantia:float)+ObterSaldo()

Page 12: Programação web ii   aulas 06 e 07

Como criar uma classe

class NomeClasse

{

var $Propriedades;

function Metodo( )

{

<procedimentos>

}

}

Page 13: Programação web ii   aulas 06 e 07

Pessoa.class.php

Page 14: Programação web ii   aulas 06 e 07

Conta.class.php

Page 15: Programação web ii   aulas 06 e 07

Objeto• Um objeto é uma estrutura dinâmica

originada com base em uma classe.

Pessoa

+Codigo: 10+Nome: Carlos da Silva+Altura: 1.85+Idade: 25+Nacimento: 10/04/1976+Escolaridade: Ensino Médio+Salario: R$ 650,00

+Crescer(centimetros:integer)+Formar(titulo:string)+Envelhecer(anos:integer)

Conta

+Agencia: 6677+Codigo: CC.1234-56+DataDeCriacao: 10/07/2002+Titular: Carlos da Silva+Senha: 9876+Saldo: R$ 567,00+Cancelada: false

+Retirar(quantia:float)+Depositar(quantia:float)+ObterSaldo()

Page 16: Programação web ii   aulas 06 e 07

Criando um objeto

Instanciando um objeto

Page 17: Programação web ii   aulas 06 e 07

Acessando um método

Acessando as Propriedades do Objeto Carlos

Observação: note que, para acessar propriedades e métodos de um objeto dentroDe uma string dupla (que é interpretada), é necessário utilizar-se de chaves ao redorda expressão.

Page 18: Programação web ii   aulas 06 e 07

Includes

• As includes nos permitem reaproveitar uma ou mais funções ou arquivos, utilizando-os em diversas páginas do site.

• É utilizada na importação das Classes.

Page 19: Programação web ii   aulas 06 e 07

Crie um programa com as classes Pessoa e Conta que utilizem os atributos e os métodos do diagrama abaixo.

Pessoa

+Codigo: 10+Nome: Carlos da Silva+Altura: 1.85+Idade: 25+Nacimento: 10/04/1976+Escolaridade: Ensino Médio+Salario: R$ 650,00

+Crescer(centimetros:integer)+Formar(titulo:string)+Envelhecer(anos:integer)

Conta

+Agencia: 6677+Codigo: CC.1234-56+DataDeCriacao: 10/07/2002+Titular: Carlos da Silva+Senha: 9876+Saldo: R$ 567,00+Cancelada: false

+Retirar(quantia:float)+Depositar(quantia:float)+ObterSaldo()

Salve as classes com os nomes: Pessoa.class.php e Conta.class.php no diretório classes

Page 20: Programação web ii   aulas 06 e 07

Faça um programa que instancie os objetos das Classes Pessoa e Conta, utilizando os seus respectivos métodos, conforme a figura abaixo.

Salve com o nome objeto.php, no mesmo diretório onde se encontra o diretório classes.

Page 21: Programação web ii   aulas 06 e 07

objeto.php

Page 22: Programação web ii   aulas 06 e 07

objeto.php

Page 23: Programação web ii   aulas 06 e 07

classes/Pessoa.class.php

Page 24: Programação web ii   aulas 06 e 07

classes/Conta.class.php