PHP-5-Vinicius-V-SDSL
-
Upload
adriana-silva -
Category
Documents
-
view
492 -
download
1
Transcript of PHP-5-Vinicius-V-SDSL
![Page 2: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/2.jpg)
2
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Nome
Experiências com programação
Conhecimentos de linguagens WEB / HTML
Expectativas referentes ao curso
ApresentaçõesApresentações
![Page 3: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/3.jpg)
3
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Introdução
Manipulação de dados
Operadores
Estruturas de controle
Funções
PHP e formulários HTML
Manipulação de arquivos
Sessões e Cookies
PHP OO
ProgramaPrograma
![Page 4: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/4.jpg)
4
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
O que é PHP?
Hypertext Processor
linguagem de script para a Web
server side
embutida no HTML
Diferenças?
PHP x HTML
PHP x JavaScript
PHP x CGI
IntroduçãoIntrodução
![Page 5: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/5.jpg)
5
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Por que utilizar PHP?
linguagem mais utilizada na Web
código-fonte aberto
possui muitos recursos prontos (extensões)
amplo suporte a bancos de dados
portável
estável
rápido
fácil de aprender
IntroduçãoIntrodução
![Page 6: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/6.jpg)
6
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Material na Web
http://www.php.net
http://zend.com
http://phpfaqts.com
http://phpbuilder.com
www.phphub.com
www.phppaterns.com
www.phpclasses.org
www.sourceforge.net
http://pear.php.net
http://phpbrasil.com
IntroduçãoIntrodução
![Page 7: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/7.jpg)
7
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Noções básicas de programação em PHP
tags limitadoras de um programa PHP
comentários (como e porquê?)
comandos para saída na tela
finalização das linhas de comando
PHP dentro de código HTML
HTML dentro do código PHP
caractere identificador de variável
IntroduçãoIntrodução
![Page 8: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/8.jpg)
8
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Exercício
Criar uma página em PHP para exibição da data e
hora atual.
IntroduçãoIntrodução
![Page 9: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/9.jpg)
9
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Numéricos inteiro ( 5 ) real ( 4.432 )
Alfanuméricos
aspas simples ( ' ) aspas duplas ( " ) aspas invertidas ( ´ ) caractere de controle ( \ )
Manipulação de dadosManipulação de dados
![Page 10: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/10.jpg)
10
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Variáveis
não é necessário declarar as variáveis em PHP iniciam sempre com o caractere $ não podem iniciar com números PHP é case-sensitive
Constantes
armazenam dados que não são alterados referencia-se diretamente pelo nome (sem $)
define (<nome_constante>,<valor>);
Manipulação de dadosManipulação de dados
![Page 11: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/11.jpg)
11
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Arrays
podem armazenar mais de um valor, pois possuem além de um nome identificador um índice que pode ser numérico ou textual
o índice aparece entre colchetes [] e após o nome
índices numéricos iniciam sempre em zero
os valores atribuídos podem ser de tipos diferentes
podem ser uni ou multidimensionais
Manipulação de dadosManipulação de dados
![Page 12: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/12.jpg)
12
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Exercício
Crie um array chamado estado para armazenar
neste as capitais dos estados na região sul do
Brasil, utilizando como índice as sigla dos estados.
Manipulação de dadosManipulação de dados
![Page 13: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/13.jpg)
13
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Aritméticos
OperadoresOperadores
+ ADIÇÃO
- SUBTRAÇÃO
* MULTIPLICAÇÃO
/ DIVISÃO
-oper TROCA SINAL
++oper PRÉ-INCREMENTO
--oper PRÉ-DECREMENTO
oper++ PÓS-INCREMENTO
oper-- PÓS-DECREMENTO
![Page 14: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/14.jpg)
14
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Condicionais
OperadoresOperadores
X == Y X IGUAL A YX >= Y X MAIOR OU IGUAL A YX <= Y X MENOR OU IGUAL A YX != Y X DIFERENTE DE YX <> Y X DIFERENTE DE YX > Y X MAIOR QUE Y
X < Y X MENOR QUE Y
![Page 15: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/15.jpg)
15
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Atribuição
OperadoresOperadores
$num = 5;
$num += 5; $num = $num + 5;
$num -= 5; $num = $num - 5;
$num *= 5; $num = $num * 5;
$num /= 5; $num = $num / 5;
$nome .= “aluno”; $nome = $nome.”aluno”;
![Page 16: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/16.jpg)
16
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Lógicos
OperadoresOperadores
!X verdadeiro se X for falso
X AND Y verdadeiro se X e Y forem verdadeirosX OR Y verdadeiro se X ou Y forem verdadeirosX XOR Y verdadeiro se apenas um for verdadeiroX && Y verdadeiro se X e Y forem verdadeirosX || Y verdadeiro se X ou Y forem verdadeiros
![Page 17: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/17.jpg)
17
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Exercício
Quais são os valores das variáveis $a, $b, $c, $x, $y e $z após a execução do seguinte programa:
$a=2;$b=4;$c=6;$x= --$c + $b;$y= $b++ + $a;$z= $a - $b--;
OperadoresOperadores
![Page 18: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/18.jpg)
18
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Condicional (if ... else)
Estruturas de controleEstruturas de controle
$nota = ($N1 + 2*$N2)/3;if ( $nota > 9.5 )
$resultado = “Aprovado com distinção”; elseif ( ($nota >= 8) and ($nota <= 9.5) )
$resultado = “Aprovado plenamente”; elseif ( ($nota >= 6) and ($nota <= 7.9) )
$resultado = “Aprovado”; else $resultado = “Reprovado”;echo “Você foi $resultado em seu TCC”;
![Page 19: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/19.jpg)
19
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Condicional (switch)
Estruturas de controleEstruturas de controle
switch ($opcao){case "s": echo "Você escolheu a opção SIM"; break; case "n": echo "Você escolheu a opção NÃO"; break; default: echo "A opção digitada é inválida"; break;
}
![Page 20: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/20.jpg)
20
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Repetição (while)
Repetição (do ... while)
Estruturas de controleEstruturas de controle
$cont = 1;while ( $cont < 10 ){
echo "O valor atual do contador é $cont <br>"; $cont++;
}
$cont = 0;do {
$cont++;echo "O valor atual do contador é $cont <br>";
} while ($cont < 10);
![Page 21: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/21.jpg)
21
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Repetição (for)
Repetição (foreach)
Estruturas de controleEstruturas de controle
for ($cont=100; $cont >= 0; $cont--):
echo "O valor da variável \$cont é $cont <br>";
endfor;
$vetor = array ("um"=>1, "dois"=>2, "três"=>3);foreach ($vetor as $chave => $valor){
echo "O valor de \$vetor[$chave] é $valor <br>";}
![Page 22: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/22.jpg)
22
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Exercício
Crie um array chamado curso que armazene as
seguintes informações sobre esse curso: - nome- data - carga horária- local
Utilize strings para os índices do array. Utilize foreach para imprimir o array neste formato:
Nome do curso: PHP 5Informação armazenada em $curso[nome]
Estruturas de controleEstruturas de controle
![Page 23: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/23.jpg)
23
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
torna os programas mais organizados e modulares
uma função pode ou não receber argumentos em sua chamada (por valor ou por referência &)
o comando return é opcional e serve para que a função retorne um valor
sempre que o PHP encontra uma chamada para uma função, a execução do programa é interrompida e o fluxo de execução passa para o início da função
FunçõesFunções
![Page 24: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/24.jpg)
24
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
FunçõesFunções
function lista_aprovados($alunos){ for ($i=0; $i < sizeof($alunos); $i++){
$media = ($alunos[$i]["n1"] + 2*$alunos[$i]["n2"])/3;if ($media >= 6){ $aprovados[] = $alunos[$i]["nome"];}
} return $aprovados;}
![Page 25: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/25.jpg)
25
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
FunçõesFunções
Pré-definidas
array - cria um array
sort - ordena um array
sizeof - obtém o número de elementos de um array
strchr - encontra a primeira ocorrência de um caractere
strlen - obtém o tamanho de uma string
substr - retorna uma parte da string
split - subdivide uma string em várias strings
str_replace - substitui as ocorrências de uma string
date - formata data e hora
![Page 26: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/26.jpg)
26
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
FunçõesFunções
include e require
funções que permitem reaproveitar funções ou arquivos, utilizando-os em diversas páginas do site.
tem por objetivo incluir um arquivo dentro de outro.
include “nome_arquivo.inc.php”;require “nome_arquivo.inc.php”;
![Page 27: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/27.jpg)
27
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
FunçõesFunções
ExercícioCriar uma função que recebe um array chamado alunos que contenha o nome, nota 1 e nota 2 dos seguintes alunos.
A função deve calcular a média (N1 + 2*N2)/3 e retornar um outro array chamado aprovados que deve armazenar o nome e a média dos alunos aprovados. O programa para imprimir a listagem dos aprovados, em ordem alfabética, com suas médias finais.
6,79,1Fabiane Almeida
8,63,7Eduardo Romero
5,95,6Carlos Pedroso
8,67,8Bianca da Silva
2,96,5Aline dos Santos
N2N1Nome
![Page 28: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/28.jpg)
28
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
PHP e Formulários HTMLPHP e Formulários HTML
criados em HTML
possuem no mínimo:
5. um campo para entrada de dados
6. um botão para enviar os dados
7. endereço de destino para os dados enviados
![Page 29: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/29.jpg)
29
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
PHP e Formulários HTMLPHP e Formulários HTML<FORM action="cadastro.php" method="post">
<INPUT type="text" name="nome" size="30" maxlength="150"><INPUT type="password" name="senha" size="10" maxlength="150"><SELECT name="select"> <option value="RS">RS</option>
<option value="SC">SC</option> <option value="PR">PR</option>
</SELECT><TEXTAREA name="COMENTARIO" cols="30" rows="10" wrap="physical"></TEXTAREA><INPUT type="checkbox" name="fds" value="FDS"><INPUT type="checkbox" name="lgr" value="LGR"><INPUT type="radio" name="noticias" value="sim"><INPUT type="radio" name="noticias" value="nao"><INPUT TYPE="submit" value="Enviar os dados acima"> <INPUT TYPE="reset" value="Limpar">
</FORM>
![Page 30: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/30.jpg)
30
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
PHP e Formulários HTMLPHP e Formulários HTML
Métodos de envio
GET método padrão, através do qual os dados são enviados com o nome da página que receberá os dados www.site.com.br/programa.php?nome=vinicius&idade=27
desvantagens ?
POST envia os dados por meio do corpo da mensagem enviada ao servidor www.site.com.br/programa.php
vantagens?
![Page 31: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/31.jpg)
31
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
PHP e Formulários HTMLPHP e Formulários HTML
Tratando os dados recebidos
como variáveis - apenas acrescenta-se o símbolo $ antes do nome definido no form
como array do PHP – arrays definidos pelo PHP que armazenam as informações enviadas pelo
GET $_GET POST $_POST
Neste caso, as chaves dos arrays são os nomes dos campos do formulário HTML
![Page 32: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/32.jpg)
32
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
PHP e Formulários HTMLPHP e Formulários HTML
ExercícioCrie 3 arquivos (cadastro1.php, cadastro2.php e fim_cadastro.php)
No arquivo cadastro1.php crie um form com os seguintes campos, que devem ser enviados para o arquivo cadastro2.php:
- Nome (text - não pode estar vazio e deve ter sobrenome)- Sexo (radio)
No arquivo cadastro2.php crie um form com os campos abaixo, que devem ser remetidos para o arquivo fim_cadastro.php:
- Senha (password com mínimo de 5 caracteres)
- Comentário: (textarea de 30 colunas e 6 linhas)
O arquivo fim_cadastro.php deve receber e imprimir na tela todos os dados do cadastro (form1 e form2)
![Page 33: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/33.jpg)
33
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Manipulação de arquivosManipulação de arquivos
Quando necessitamos armazenar poucos dados, podemos fazer isso em arquivos texto para termos um acesso mais rápido as informações.
Através do PHP podemos:
abrir um arquivo fopen
ler um arquivo fread
escrever em um arquivo fwrite
fechar um arquivo fclose
![Page 34: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/34.jpg)
34
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Manipulação de arquivosManipulação de arquivos
modos possíveis para a função fopen
r abre somente para leitura (ponteiro no início)
r+ abre para leitura e escrita (ponteiro no início)
w abre somente para escrita (cria ou zera)
w+ abre para leitura e escrita (cria ou zera)
a abre somente para escrita (ponteiro no final)
a+ abre para leitura e escrita (ponteiro no final)
![Page 35: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/35.jpg)
35
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Manipulação de arquivosManipulação de arquivos
Exemplos
Leitura
Escrita
$arq = fopen ("nome_arquivo.txt", "r");while (!feof ($arq)) { $linha = fread($arq,1024); echo $linha;}fclose ($arq);
$arquivo = fopen("cadastro.txt","a+");fwrite ($arquivo,$nome."##".$email."\n");fclose($arquivo);
![Page 36: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/36.jpg)
36
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Manipulação de arquivosManipulação de arquivos
Exercício
Modificar o arquivo fim_cadastro.php para que os dados do cadastro sejam armazenados em arquivo (cadastros.txt).
Após, faça testes simulando cadastros e consultando o arquivo para verificar se os dados estão sendo armazenados.
Atenção com a permissão para escrita no arquivo
![Page 37: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/37.jpg)
37
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Sessões e CookiesSessões e Cookies
Sessão
trata-se de um período de tempo enquanto uma pessoa particular navega por determinado site.
através das sessões, podemos registrar variáveis, as quais estarão disponíveis em todas as páginas enquanto o usuário estiver navegando pelo site.
![Page 38: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/38.jpg)
38
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Sessões e CookiesSessões e Cookies
Sessão
session_start();session_register("nome_usuario");session_register("login_usuario");session_register("senha");$_SESSION['nome_usuario'] = $nome_banco;$_SESSION['login_usuario'] = $login_banco;$_SESSION['senha'] = $senha_banco;
![Page 39: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/39.jpg)
39
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Sessões e CookiesSessões e Cookies
Cookies
pequenos fragmentos de informação retidos na máquina do cliente, quer na memória do Browser, quer em um arquivo gravado no HD.
cada cookie contém um par nome/valor.
configurar um cookie significa associar um par valor/nome e armazenar no lado cliente.
obter ou ler um cookie significa utilizar o nome para recuperar o valor
vantagens e desvantagens
![Page 40: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/40.jpg)
40
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Sessões e CookiesSessões e Cookies
Cookies
Sintaxe
Exemplo
Três dicas importantes
setcookie("user","joao",time()+86400);
setcookie(nome,valor,validade,caminho,dominio,seguro);
![Page 41: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/41.jpg)
41
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Sessões e CookiesSessões e Cookies
Exercício
Modificar os arquivos cadastro1.php, cadastro2.php e fim_cadastro.php para que os dados dos formulários sejam gravados em sessão (cadastro 1 e 2) e recuperados da sessão (fim_cadastro).
![Page 42: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/42.jpg)
42
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Introdução
Classe - tipo de dado definido com atributos e métodos
Objeto - uma instância de uma classe
Atributo - dados de uma classe
Método - funções de uma classe
Herança - extensão de uma classe
PHP OOPHP OO
![Page 43: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/43.jpg)
43
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Classe
PHP OOPHP OO
Depositar
Sacar
ConsultarSaldo
Encerrar
Abrir Nome
Saldo
Atributos
Métodos
(Parte escondida)
(Protocolo de acesso)
![Page 44: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/44.jpg)
44
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Objetos
PHP OOPHP OO
Depositar
Sacar
ConsultarSaldo
Encerrar
Abrir Tio Patinhas
100.000,00Depositar
Sacar
ConsultarSaldo
Encerrar
Abrir Donald
1,00
Conta do Tio Patinhas Conta do Donald
![Page 45: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/45.jpg)
45
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
PHP OOPHP OOclass ContaEmBanco {
var nome,saldo; function ContaEmBanco($nome,$valor){
$this->nome = $nome;$this->saldo = $valor;
}function depositar($valor){
$this->saldo += $valor;}function consultarSaldo(){
echo $this->saldo;}
...}$conta1 = new ContaEmBanco(“Donald“,100);$conta1->depositar(500); $conta1->consultarSaldo();
Classe
Construtor
Métodos
Instância
![Page 46: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/46.jpg)
46
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Classe ContaEmBanco•Abrir
•Encerrar
•Depositar
•Sacar
•ConsultarSaldo
Classe ContaPoupança•CalculaJuros
Calcula os juros do mês
Classe ContaCheque•DescontaCheque
Desconta do saldo um cheque passado
Herança
PHP OOPHP OO
![Page 47: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/47.jpg)
47
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Sobrescrevendo métodos
PHP OOPHP OO
class ContaCheque extends ContaEmBanco {var num_cheques = 0;function ContaCheque($nome,$valor){
$this->nome = $nome;$this->saldo = $valor;
}function consultarSaldo(){
echo $this->saldo;$this->saldo -= 0,40;
} ...}$contaCh = new ContaCheque(“Pluto“,100);$contaCh->consultarSaldo();
![Page 48: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/48.jpg)
48
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Modelo OO (Zend 1) objetos copiados
Novo modelo OO (Zend 2) referências a objetos private, public, protected, abstract permite construtores e destrutores controle de duplicação set e get
PHP 5
PHP OOPHP OO
![Page 49: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/49.jpg)
49
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
class Conta {function setSaldo($value){
$this->saldo = $value;}function getSaldo(){
return $this->saldo;}
}
function zeraConta($obj){$obj->setSaldo(0);
}
$object = new Conta();$object->setSaldo(100);seraConta($object);echo $object->getSaldo();
PHP 5 – objetos por referência
PHP OOPHP OO
![Page 50: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/50.jpg)
50
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
PHP OOPHP OO
class Conta {function Conta($valor){
$this->saldo = $valor;}funciton getSaldo(){
return $this->saldo;}
}
function criarConta($valor){return new Conta($valor);
}
PHP4:$conta1 = criarConta(250);echo $conta1->getSaldo();
PHP5:echo criarConta(250)->getSaldo();
PHP 5 – referenciando objetos retornados
![Page 51: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/51.jpg)
51
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
class ClasseBase { function __construct() { print "No construtor da ClasseBase\n"; }}
class SubClasse extends ClasseBase { function __construct() { parent::__construct(); print "No construtor da SubClasse\n"; }}
$obj = new ClasseBase();$obj = new SubClasse();
PHP 5 – construtores
PHP OOPHP OO
![Page 52: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/52.jpg)
52
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
class MinhaClasse { function __construct() { print "No construtor\n"; $this->name = "MinhaClasse"; }
function __destruct() { print "Destruindo " . $this->name . "\n"; }}
$obj = new MinhaClasse();
PHP 5 – destrutores
PHP OOPHP OO
![Page 53: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/53.jpg)
53
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
class Conta { protected $saldo;}
class ContaPoupanca extends Conta{ function getSaldo(){
return $this->saldo; }}
$conta1 = new ContaPoupanca;echo $conta1->getSaldo(); OKecho $conta1->saldo; NÃO
PHP 5 – protected
PHP OOPHP OO
![Page 54: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/54.jpg)
54
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
class Conta { function __get($atributo){
return $this->members[$atributo]; } function __set($atributo,$valor){
$this->members[$atributo] = $valor; }}
PHP 5 – get e set
PHP OOPHP OO
![Page 55: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/55.jpg)
55
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
abstract class Conta {//...
}
class ContaEspecial extends Conta{//...
}
$conta1 = new Conta; NÃO$conta1 = new ContaEspecial; SIM
PHP 5 – abstract
PHP OOPHP OO
![Page 56: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/56.jpg)
56
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
Exercício
Implementar através do paradigma OO uma conta bancária utilizando e testando os novos recursos do PHP5
PHP OOPHP OO
DepositarSacar
ConsultarSaldo
EncerrarAbrir
Nome
Saldo
![Page 57: PHP-5-Vinicius-V-SDSL](https://reader033.fdocument.pub/reader033/viewer/2022052902/5571faae497959916992d366/html5/thumbnails/57.jpg)
57
Programação PHP PHP 5
Vinícius Costa de Souza - Julho de 2005 /
OBRIGADO!OBRIGADO!
Vinícius Costa de [email protected]
www.inf.unsinos.br/~vinicius
São Leopoldo, julho de 2005