Escolar Documentos
Profissional Documentos
Cultura Documentos
PHP 5 Vinicius V SDSL
PHP 5 Vinicius V SDSL
Julho de 2005
Apresentaes
Nome Experincias com programao Conhecimentos de linguagens WEB / HTML Expectativas referentes ao curso
Programa
Introduo Manipulao de dados Operadores Estruturas de controle Funes PHP e formulrios HTML Manipulao de arquivos Sesses e Cookies PHP OO
Vincius Costa de Souza - Julho de 2005 / 3
Introduo
O que PHP? Hypertext Processor linguagem de script para a Web server side embutida no HTML Diferenas? PHP x HTML PHP x JavaScript PHP x CGI
Vincius Costa de Souza - Julho de 2005 / 4
Introduo
Por que utilizar PHP? linguagem mais utilizada na Web cdigo-fonte aberto possui muitos recursos prontos (extenses) amplo suporte a bancos de dados portvel estvel rpido fcil de aprender
Vincius Costa de Souza - Julho de 2005 / 5
Introduo
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
Vincius Costa de Souza - Julho de 2005 / 6
Introduo
Noes bsicas de programao em PHP tags limitadoras de um programa PHP comentrios (como e porqu?) comandos para sada na tela finalizao das linhas de comando PHP dentro de cdigo HTML HTML dentro do cdigo PHP caractere identificador de varivel
Vincius Costa de Souza - Julho de 2005 / 7
Introduo
Exerccio Criar uma pgina em PHP para exibio da data e hora atual.
Manipulao de dados
Numricos inteiro ( 5 ) real ( 4.432 ) Alfanumricos aspas simples ( ' ) aspas duplas ( " ) aspas invertidas ( ) caractere de controle ( \ )
Manipulao de dados
Variveis no necessrio declarar as variveis em PHP iniciam sempre com o caractere $ no podem iniciar com nmeros PHP case-sensitive Constantes armazenam dados que no so alterados referencia-se diretamente pelo nome (sem $) define (<nome_constante>,<valor>);
Vincius Costa de Souza - Julho de 2005 / 10
Manipulao de dados
Arrays podem armazenar mais de um valor, pois possuem alm de um nome identificador um ndice que pode ser numrico ou textual o ndice aparece entre colchetes [] e aps o nome ndices numricos iniciam sempre em zero os valores atribudos podem ser de tipos diferentes podem ser uni ou multidimensionais
Manipulao de dados
Exerccio Crie um array chamado estado para armazenar neste as capitais dos estados na regio sul do Brasil, utilizando como ndice as sigla dos estados.
Operadores
Aritmticos
+ * / -oper ++oper --oper oper++ oper-ADIO SUBTRAO MULTIPLICAO DIVISO TROCA SINAL PR-INCREMENTO PR-DECREMENTO PS-INCREMENTO PS-DECREMENTO
Operadores
Condicionais
X == Y X >= Y X <= Y X != Y X <> Y X > Y X < Y X IGUAL A Y X MAIOR OU IGUAL A Y X MENOR OU IGUAL A Y X DIFERENTE DE Y X DIFERENTE DE Y X MAIOR QUE Y X MENOR QUE Y
Vincius Costa de Souza - Julho de 2005 / 14
Operadores
Atribuio
$num = 5; $num += 5; $num -= 5; $num *= 5; $num /= 5; $nome .= aluno; $num = $num + 5; $num = $num - 5; $num = $num * 5; $num = $num / 5; $nome = $nome.aluno;
Vincius Costa de Souza - Julho de 2005 / 15
Operadores
Lgicos
verdadeiro se X for falso verdadeiro se X e Y forem verdadeiros verdadeiro se X ou Y forem verdadeiros verdadeiro se apenas um for verdadeiro verdadeiro se X e Y forem verdadeiros verdadeiro se X ou Y forem verdadeiros
Vincius Costa de Souza - Julho de 2005 / 16
Operadores
Exerccio Quais so os valores das variveis $a, $b, $c, $x, $y e $z aps a execuo do seguinte programa: $a=2; $b=4; $c=6; $x= --$c + $b; $y= $b++ + $a; $z= $a - $b--;
Estruturas de controle
Condicional (if ... else)
$nota = ($N1 + 2*$N2)/3; if ( $nota > 9.5 ) $resultado = Aprovado com distino; elseif ( ($nota >= 8) and ($nota <= 9.5) ) $resultado = Aprovado plenamente; elseif else $resultado = Reprovado; echo Voc foi $resultado em seu TCC;
Vincius Costa de Souza - Julho de 2005 / 18
$resultado = Aprovado;
Estruturas de controle
Condicional (switch)
switch ($opcao){ echo "Voc escolheu a opo SIM"; break; case "n": echo "Voc escolheu a opo NO"; break; default: echo "A opo digitada invlida"; break; }
Vincius Costa de Souza - Julho de 2005 / 19
case "s":
Estruturas de controle
Repetio (while)
$cont = 1; while ( $cont < 10 ){ echo "O valor atual do contador $cont <br>"; $cont++; }
Estruturas de controle
Repetio (for)
for ($cont=100; $cont >= 0; $cont--):
echo "O valor da varivel \$cont $cont <br>";
endfor;
Repetio (foreach)
$vetor = array ("um"=>1, "dois"=>2, "trs"=>3); foreach ($vetor as $chave => $valor){ echo "O valor de \$vetor[$chave] $valor <br>"; }
Vincius Costa de Souza - Julho de 2005 / 21
Estruturas de controle
Exerccio Crie um array chamado curso que armazene as seguintes informaes sobre esse curso: - nome - data - carga horria - local Utilize strings para os ndices do array. Utilize foreach para imprimir o array neste formato: Nome do curso: PHP 5 Informao armazenada em $curso[nome]
Vincius Costa de Souza - Julho de 2005 / 22
Funes
torna os programas mais organizados e modulares uma funo pode ou no receber argumentos em sua chamada (por valor ou por referncia &) o comando return opcional e serve para que a funo retorne um valor sempre que o PHP encontra uma chamada para uma funo, a execuo do programa interrompida e o fluxo de execuo passa para o incio da funo
Funes
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; }
Funes
Pr-definidas array - cria um array sort - ordena um array sizeof - obtm o nmero de elementos de um array strchr - encontra a primeira ocorrncia de um caractere strlen - obtm o tamanho de uma string substr - retorna uma parte da string split - subdivide uma string em vrias strings str_replace - substitui as ocorrncias de uma string date - formata data e hora
Vincius Costa de Souza - Julho de 2005 / 25
Funes
include e require funes que permitem reaproveitar funes ou arquivos, utilizando-os em diversas pginas do site. tem por objetivo incluir um arquivo dentro de outro.
include
nome_arquivo.inc.php;
require nome_arquivo.inc.php;
Funes
Exerccio
Criar uma funo que recebe um array chamado alunos que contenha o nome, nota 1 e nota 2 dos seguintes alunos.
Nome Aline dos Santos Bianca da Silva Carlos Pedroso Eduardo Romero Fabiane Almeida N1 6,5 7,8 5,6 3,7 9,1 N2 2,9 8,6 5,9 8,6 6,7
A funo deve calcular a mdia (N1 + 2*N2)/3 e retornar um outro array chamado aprovados que deve armazenar o nome e a mdia dos alunos aprovados. O programa para imprimir a listagem dos aprovados, em ordem alfabtica, com suas mdias finais.
Vincius Costa de Souza - Julho de 2005 / 27
Manipulao de arquivos
Quando necessitamos armazenar poucos dados, podemos fazer isso em arquivos texto para termos um acesso mais rpido as informaes. Atravs do PHP podemos: abrir um arquivo ler um arquivo escrever em um arquivo fechar um arquivo fopen fread fwrite fclose
Manipulao de arquivos
modos possveis para a funo fopen r abre somente para leitura (ponteiro no incio)
r+ abre para leitura e escrita (ponteiro no incio) 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)
Vincius Costa de Souza - Julho de 2005 / 34
Manipulao de arquivos
Exemplos
Leitura
$arq = fopen ("nome_arquivo.txt", "r"); while (!feof ($arq)) { $linha = fread($arq,1024); echo $linha; } fclose ($arq);
Escrita
Manipulao de arquivos
Exerccio Modificar o arquivo fim_cadastro.php para que os dados do cadastro sejam armazenados em arquivo (cadastros.txt). Aps, faa testes simulando cadastros e consultando o arquivo para verificar se os dados esto sendo armazenados. Ateno com a permisso para escrita no arquivo
Sesses e Cookies
Sesso trata-se de um perodo de tempo enquanto uma pessoa particular navega por determinado site. atravs das sesses, podemos registrar variveis, as quais estaro disponveis em todas as pginas enquanto o usurio estiver navegando pelo site.
Sesses e Cookies
Sesso
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;
Sesses e Cookies
Cookies pequenos fragmentos de informao retidos na mquina do cliente, quer na memria do Browser, quer em um arquivo gravado no HD. cada cookie contm 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
Vincius Costa de Souza - Julho de 2005 / 39
Sesses e Cookies
Cookies Sintaxe
setcookie(nome,valor,validade,caminho,dominio,seguro);
Exemplo
setcookie("user","joao",time()+86400);
Sesses e Cookies
Exerccio Modificar os arquivos cadastro1.php, cadastro2.php e fim_cadastro.php para que os dados dos formulrios sejam gravados em sesso (cadastro 1 e 2) e recuperados da sesso (fim_cadastro).
PHP OO
Introduo Classe - tipo de dado definido com atributos e mtodos Objeto - uma instncia de uma classe Atributo - dados de uma classe Mtodo - funes de uma classe Herana - extenso de uma classe
PHP OO
Classe Abrir Encerrar Depositar Sacar ConsultarSaldo
(Parte escondida)
Nome Saldo
Atributos
PHP OO
Objetos
Tio Patinhas
Donald
100.000,00
1,00
Conta do Donald
Vincius Costa de Souza - Julho de 2005 / 44
PHP OO
Classe Construtor
Mtodos
class ContaEmBanco { var nome,saldo; function ContaEmBanco($nome,$valor){ $this->nome = $nome; $this->saldo = $valor; } function depositar($valor){ $this->saldo += $valor; }
Instncia
} $conta1 = new ContaEmBanco(Donald,100); $conta1->depositar(500); $conta1->consultarSaldo(); Vincius Costa de Souza - Julho de 2005 / 45
PHP OO
Herana Classe ContaEmBanco
Abrir Encerrar Depositar Sacar ConsultarSaldo
Classe ContaPoupana
CalculaJuros Calcula os juros do ms
Classe ContaCheque
DescontaCheque Desconta do saldo um cheque passado
Vincius Costa de Souza - Julho de 2005 / 46
PHP OO
Sobrescrevendo mtodos
class ContaCheque extends ContaEmBanco { var num_cheques = 0; function ContaCheque($nome,$valor){ $this->nome = $nome; $this->saldo = $valor; }
PHP OO
PHP 5
Modelo OO (Zend 1) objetos copiados Novo modelo OO (Zend 2) referncias a objetos private, public, protected, abstract permite construtores e destrutores controle de duplicao set e get
Vincius Costa de Souza - Julho de 2005 / 48
PHP OO
PHP 5 objetos por referncia
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();
Vincius Costa de Souza - Julho de 2005 / 49
PHP OO
PHP 5 referenciando objetos retornados
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();
Vincius Costa de Souza - Julho de 2005 / 50
PHP OO
PHP 5 construtores
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();
Vincius Costa de Souza - Julho de 2005 / 51
PHP OO
PHP 5 destrutores
class MinhaClasse { function __construct() { print "No construtor\n"; $this->name = "MinhaClasse"; } function __destruct() { print "Destruindo " . $this->name . "\n"; }
PHP OO
PHP 5 protected
class Conta { protected $saldo; } class ContaPoupanca extends Conta{ function getSaldo(){ return $this->saldo; } } $conta1 = new ContaPoupanca; echo $conta1->getSaldo(); echo $conta1->saldo; OK NO
PHP OO
PHP 5 get e set
class Conta { function __get($atributo){ return $this->members[$atributo]; } function __set($atributo,$valor){ $this->members[$atributo] = $valor; } }
PHP OO
PHP 5 abstract
abstract class Conta { //... } class ContaEspecial extends Conta{ //... } $conta1 = new Conta; $conta1 = new ContaEspecial; NO SIM
PHP OO
Exerccio Implementar atravs do paradigma OO uma conta bancria utilizando e testando os novos recursos do PHP5 Abrir Encerrar Depositar Sacar ConsultarSaldo
Nome Saldo
OBRIGADO!