Upload
maradona-morais
View
113
Download
4
Embed Size (px)
Citation preview
Sobre o minicurso
DURAÇÃO
8 horas
2 dias
4 h/d
MATERIAL
- Slides
- Apostila
PRODUTO
Estudo de caso
ATM
Computador Servidorhttp GET www.ifrn.edu.br/informatica.html
http response
<html> … </html>
Exemplo com uma página HTML
Produto (html)
Computador
Servidor
http GET www.ifrn.edu.br/informatica.php
http response
<html> … </html>
Com um PHP...
Modelo (php)
Produto (html)
Sumário
● Tipos de dados
– Numéricos
– Alfanuméricos
– Booleanos (true or false)
● Variáveis e constantes
● Arrays
● Operadores
– Aritméticos
– De comparação
– Lógicos
– Concatenação
● Estruturas de controle
– If
– Switch
– While
– For
– Foreach
● Orientação a objetos
– Classes
● Métodos● Atributos
● Trabalhando com formulários
– $_GET
– $_POST
● $_SESSION
● $_COOKIE
● $_SERVER
Numéricos
Dados Descrição
5 Valor inteiro de base decimal
4,012 Valor real com três casas decimais
,14 Valor real com duas casas decimais
033 Valor inteiro na base octal. Todo valor iniciado com 0 é considerado de base 8
0xBC Valor inteiro na base hexadecimal. Todo valor iniciado com 0x é considerado de base 16
43000000 É um numero real grande, que pode ser expresso por 4.3E+7
Alfanuméricos (Strings)
● Existem três formas de utilizar Strings:– Com aspas simples (');– Com aspas duplas (“);– Com aspas invertidas (`)
● Permite interpolar variáveis● Cuidado! Caracteres especiais:
– \n (nova linha)– \t (tab)– \\ (barra invertida)– \$ (cifrão)
– \' (aspa simples)– \“ (aspa dupla)
Strings com aspas duplas
Strings com aspas invertidas
● Utilizada para dar instruções para o sistema operacional.
Este exemplo imprime os nomes das páginas no mesmo diretório com extensão .html (No linux)
Sintaxe de uma variável PHP
$nome = “Rasmus Lerdorf”;
cifrão
identificador
valor
ponto e vírgula
Lembre-se: Ponto e vírgula, sempre!
Dando nome para variáveis
● Sempre iniciam com o sinal cifrão ($) e são casesensitive– Alguns nomes válidos:
$bill $head_count
$MaximumForce $I_HEART_PHP
$_underscore $_int
– Alguns nomes ilegais:$not valid $|
$3wa
– Todas estas são diferentes:$hot_stuff $Hot_stuff
$hot_Stuff $HOT_STUFF
Contantes
● Criadas com o propósito de não mudar de valor durante execução. Sintaxe:
– bool define(string nome, misto valor [, bool case_insensitive])
● Exemplo:
– define(“SOBRENOME”, “Ferreira”);
– define(“SOBRENOME”, “Ferreira”, true);
Operadores aritméticos
Operador Operação
+ Adição
- Subtração
* Multiplicação
/ Divisão
% Resto da divisão
Operadores de comparação
● Sempre retorna uma valor booleanoOperador Descrição
op1==op2 Verdadeiro se op1 for igual a op2
op1>=op2 Verdadeiro se op1 for maior ou igual a op2
op1<=op2 Verdadeiro se op1 for menor ou igual a op2
op1!=op2 Verdadeiro se op1 for diferente
op1<>op2 Também serve para representar diferença
op1>op2 Verdadeiro se op1 for maior que op2
op1<op2 Verdadeiro se op1 for menor que op2
Operadores lógicos
Operador Descrição
!op1 Verdadeiro se op1 for falso
op1 AND op2 Verdadeiro se op1 E op2 forem verdadeiros
op1 OR op2 Verdadeiro se op1 OU op2 forem verdadeiros
op1 XOR op2 Verdadeiro se só op1 ou só op2 for verdadeiro
op1 && op2 Verdadeiro se op1 E op2 forem verdadeiros
op1 || op2 Verdadeiro se op1 OU op2 forem verdadeiros
Estruturas de controle e repetição
If (condicional)
Switch (escolha)
While (repetição condicional)
For (repetição de passo)
Foreach (repetição para cada)
If (condicional)
● Sintaxe:
if (condicao) {instruções
} elseif(condicao2) {instruções
} else {instruções
}
Switch (escolha)
● Sintaxe:
switch (variavel) {case valor1:
instruçõesbreak;
case valor2:instruçõesbreak;
default:instruçõesbreak;
}
Exercite-se
Crie um algoritmo que mostre a tabuada do número 9.
Crie um algoritmo com uma matriz 4x4 e escreva os elementos da diagonal principal.
Desafio 1
Chico tem 1,50m e cresce 2 centímetros por ano, enquanto Juca tem 1,10m e cresce 3 centímetros por ano. Faça um algoritmo que calcule quantos anos serão necessários para que Juca seja maior que Chico
Desafio 2
Na usina de Angra dos Reis, os técnicos analisam a perda de massa de um material radioativo. Sabendo-se que este perde 25% de sua massa a cada 30 segundos, crie um algoritmo que imprima o tempo necessário para que a massa desse material seja menor que 0.10.
Foreach (para cada)
● Usada em vetores. Sintaxe:
foreach(vetor as key) {
instruções para cada valor no vetor
}
Orientação a objetos
● Por que? Deixa o nosso codigo mais organizado e modulariza as nossas instruções.
● Objeto
O que tem uma lâmpada?
Ligada: boleano Potência: inteiro
● Ela tem estado– Ligada (true)– Desligada (false)
● Ela tem potência– 60W, 24W, 100W...
Estado e potência são atributos da lâmpada
O que dá pra fazer com uma lâmpada?
Ligada: boleano Potência: inteiro
LigarDesligar
● Mudar o estado– Ligar– Desligar
Ligar e desligar são funções de uma lâmpada
Isto é um objeto
● Objeto é toda representação de uma entidade que possui funções e atributos.Ligada: boleano
Potência: inteiro
LigarDesligar
Funções em PHP
● Sintaxe:
function nome_funcao(arg1, arg2... , argn) {
comandos
[return <expressao>]
}
A variável $this
● Uma pseudo variável $this está disponível quando um método da classe é chamado dentro de um contexto de objeto.
● Sua implementação normalmente se encontra dentro do escopo de um método.
● $this é uma referência para o objeto que chama o método ou o atributo.
Encapsulamento de um método / atributo
● Indica a visibilidade de um método ou atributo no contexto de objeto.– Public – o método/atributo pode ser chamado por
qualquer código.– Private – o método/atributo só pode ser chamado
pela própria classe que define o objeto.
Criando objeto de uma classe
● Para criar um objeto de uma classe fazemos:
$variavel = new Nome_da_Classe();● Para chamar um método public:
$variavel>nome_metodo([argumentos]);● Para chamar um atributo public:
$variavel>atributo;
Tipos de dados nos formulários
● Podemos alterar o type de um input para obtermos diferentes tipos de entradas:– text– checkbox– radio– number– email– date– 17 outros
O type=”submit” gera um botãopara envio do formulário!
Crie um formulário para cadastrar uma pessoa
● O formulário deve conter:– nome– sobrenome– email– cidade– estado (select com 3 estados)
Como tratar estes dados com PHP?
● Perceba que temos no nosso formulário:<form action=“receber_dados.php” method=“post”>
● O method indica a forma pela qual os dados serão repassados para a página indicada em action.
● Para isso conheçamos os métodos POST e GET
Método GET
● É o método padrão para envio de dados.● Os dados serão enviados juntamente com o
nome da página (na URL) que receberá os dados.
Ex: receber_dados.php?nome=Chico&idade=17
Método POST
● O método POST envia os dados do formulário por meio do corpo da mensagem encaminhada ao servidor.
A URL fica: receber_dados.php
Recebendo os dados
● O PHP possui dois arrays superglobais para recepção de informações:– $_GET[] Recebe dados do método GET
● $_GET['nome'], $_GET['email']
– $_POST[] Recebe dados do método POST● $_POST['nome'], $_POST['email']
“Toda entrada deve ser filtrada”
● Nunca confie no usuário. Sempre verifique a entrada.– Inteiro tem que ser inteiro, texto tem que ser texto.
● htmlspecialchars(string);– Impede que o usuário insira tags HTML como
entrada.
● empty($var);– Retorna verdadeiro se a variável for vazia
● strlen($string);– Retorna o número de letras na string
● strstr($string, string delimitador);– Acha a primeira ocorrência de uma string (utilizada
em emails, por exemplo)
Como manter os nossos dados
● Para uma aplicação web é importante manter uma persistência de dados.
● PHP dá suporte nativo à maioria dos bancos de dados.
● Não iremos, infelizmente, trabalhar com banco de dados. Porém, veremos como manter uma persistência dos dados inseridos pelo usuário.
Cookie
● Funciona como uma variável● Armazena um único valor● Depende do navegador
– Armazena dados no navegador do usuário● Move de página a página
Cookie
● Definindo um cookie– setcookie() armazena dado em cookies– Sintaxe: setcookie(“cookie name”, “valor”)– Aceita um terceiro argumento opcional
● Definir uma data de expiração para o cookie
Ex: setcookie('username', 'asscssh', time()+(60*60));
● Chamando um cookie– Usando a super global $_COOKIE
Ex: $_COOKIE['username']
Session
● Permanece pelo tempo em que o usuário está na aplicação
● Pouco espaço no servidor● Mais seguro● Automaticamente deletada quando o navegador
é fechado● Armazena na super global $_SESSION
Session
● Inicializando um sessão– Utilizamos a função session_start()
● Deve ser a primeira linha do código
● Finalizando um sessão– Utilizamos a função session_destroy()
Planejando um estudo de caso - ATM
Usuário
- String nome- String sobrenome- Conta conta
Sistema
- array [ ][ ] infos
+ void initInfos()+ Usuario autenticar(conta, senha)+ atualizaValor(valor, conta)+ pegaSaldo(conta)
Conta
- int numero- int senha- float saldo
+ depositar(valor)+ sacar(valor)+ transferir(valor, conta)
us
SESSION