PHP5 BÁSICO
40 Horas
Instrutor: Antonio Itamar Júnior
PHP5 BÁSICO
•
O que é PHP?
•
Nomenclatura de arquivos
•
Abertura de escopo PHP
•
Comentários de código
•
Variáveis
•
Nomenclatura de variáveis
•
Tipos de dados
- Array
- Programação Web
- Orientação a Objetos
- MySQL
AMBIENTE DE DESENVOLVIMENTO

Links para apache e php5
3
O QUE É PHP?
4
NOMENCLATURA DE ARQUIVOS


Não pode conter caracteres especiais.
Nomes válidos:





Arquivo2.php
nomeArquivo.php
nome_arquivo.php
Cliente.php
Nomes inválidos:



nome arquivo.php
nome-arquivo.php
Formulário.php
5
ESTUDO DE CASO

Crie os arquivos para as seguintes necessidades.



Cadastrar Pessoa Jurídica;
Cadastrar Nome Completo da Mãe;
Formulário de inscrição
6
ABERTURA DE ESCOPO PHP

Sintaxe
<?php
...
?>

Sintaxe alternativa (exige alteração no PHP.INI)
<? ?>
7
COMENTÁRIOS DE CÓDIGO



Mantém textos dentro do escopo de um código PHP, sem ser
interpretado pelo servidor;
Auxilia a equipe a entender um determinado trecho de código;
Sintaxe

Pequenos comentários – recomendado para frase unica;
// Texto em linha única

Grandes comentários – recomentado para explicar um algorítimo;
/*
* Texto em
* várias linhas
*/

Grandes comentários – recomendado para explicar funcionalidades
pelo fato de auxilizar na geração de documentação do código.
/**
* Texto em
* várias linhas
*/
8
VARIÁVEIS



Similar a aritmética , as variáveis servem para armazenar
algum valor desconhecido, ou que muda com certa facilidade.
Para criar uma variável é necessário colocar o símbolo “$”
antes do nome desejado.
Sintaxe
$nome_da_varivel
9
NOMENCLATURA DE VARIÁVEIS


Não pode ser iniciada com número;
É case-sensitive, $nome é diferente de $NOME;
Válidos
Inválidos
$Nome
$2nome;
$nome
$nome completo;
$_nome
-
$nomeCompleto
*
$nome_completo
/
10
ALIMENTAR VARIÁVEIS

Valor numérico;
$variavel = 10;
$variavel = 10.5;

Valor alfanumérico
$variavel = “Hello World”;
$variavel = “10”;
$variavel = “10.5”;

Valor variável
$variavel = $variavel_2;
Da esquerda pra direita
$variavel = valor;
11
TIPOS DE DADOS

O tipo de variável se refere ao tipo de dado que é
armazenado em uma variável.
Tipo
Descrição
Int
Utilizado para números inteiros
Float
Também chamado de Double – Utilizado para
números reais (números de ponto flutuante)
String
Utilizado para coleções de caracteres (textos)
Boolean
Utilizado para valores verdadeiros ou falsos.
Array
Utilizado para armazenar vários valores
12
TIPOS DE DADOS

No PHP não há necessidade de declarar o tipo da
variável antes de utilizá-la, como é obrigatório em
linguagens como C e JAVA.
13
APRENDA FAZENDO
<?php
$quantidade = 0;
$preco = 0.00;
?>

A variável quantidade agora é entendida como uma variável
do tipo Int e a variável preco como Float.
<?php
$quantidade = 0;
$preco = ‘Brasil’;
?>

Provando a portabilidade de tipos de variável no PHP, agora
à variável preco será entendida como sendo do tipo String.

O PHP altera o tipo de variável de acordo com o que está
armazenado na variável. Em qualquer momento essa troca
pode ocorrer.
14
COERÇÃO DE TIPO

Para fazer uma coerção basta colocar o tipo desejado entre
parênteses “()” na frente da variável.
$variavel = (tipo) $variavel;

Para fazer uma coerção basta colocar o tipo desejado entre
parênteses “()” na frente da variável.
Possíveis Tipos
int
integer
float
long
double
real
15
APRENDA FAZENDO

Aplicando coerção de tipo
<?php
$quantidade = 10;
$preco = (double) $quantidade;
?>



A variável $preco, está armazenando a coerção da variável
$quantidade para o tipo real.
A variável $quantidade continua sendo do tipo int.
A variável $preco fica sendo do tipo float.
16
VISUALIZANDO VARIÁVEIS NO BROWSER
Echo
 var_dump();


Aprenda fazendo para visualizar as variaveis.
17
VARIÁVEIS VARIÁVEL

Através das variáveis variável é permitido alterar
dinamicamente o nome de uma variável.
<?php
$nome = ‘hoje’;
$$nome = 5;
echo $hoje;
echo ‘<br />’;
//A variável terá o nome inválido, portanto não irá funcionar
$nome = '123';
$$nome = '456';
echo $123;
?>
18
CONSTANTES

Uma constante armazena um valor como uma variável, mas seu
valor é atribuído uma vez e não pode ser alterado em outra parte do
script.
<?php
define(
define(
define(
define(
echo
echo
echo
echo
echo

"MONITOR" , 700 );
"LOCAL" , "Brasil" );
"VALIDO" , true );
"1CARRO" , 3 ); //Nome inválido
MONITOR;
“<br />";
LOCAL;
“<br />";
VALIDO;
?>
Nomenclatura similar as variáveis normais, com algumas pequenas
diferenças:

Usar nome em maiúsculo, para distinguir variáveis de constantes.
(Não é obrigado, mas facilita a leitura do código)

Obrigatoriamente não colocar o sinal de cifrão “$” na frente do nome.

Case sensitive
19
CONSTANTES MÁGICAS

http://www.php.net/manual/pt_BR/language.consta
nts.predefined.php
20
OPERADORES

Desenvolvimento...
21
OPERADORES ARITMÉTICOS

Similares aos operadores matemáticos.
Nome
Operador
Exemplo
Adição
+
$a + $b
Subtração
-
$a - $b
Multiplicação
*
$a * $b
Divisão
/
$a / $b
Módulo
%
$a % $b
22
OPERADORES ARITMÉTICOS

Similares aos operadores matemáticos.
Nome
Operador
Exemplo
Adição
+
$a + $b
Subtração
-
$a - $b
Multiplicação
*
$a * $b
Divisão
/
$a / $b
Módulo
%
$a % $b
23
APRENDA FAZENDO

Escreva o código abaixo no arquivo operadores_aritmeticos.php
<?php
//ALIMENTANDO VARIÁVEIS
$a = 1;
$b = 2;
$c = 3;
$d = 4;
$e = -1;
//OPERADOR DE ADIÇÃO
$adicao = $a + $b;
//OPERADOR DE SUBTRAÇÃO
$subtracao = $c - $a;
//OPERADOR DE MULTIPLICAÇÃO
$multiplicacao = $b * $c;
//OPERADOR DE DIVISÃO
$divisao = $d / $b;
//OPERADOR DE MÓDULO
$modulo = $d % $c;
?>
24
ESTUDO DE CASO

Imprima o nome da operação e a operação com resultado.
<?php
//IMPRIMIR RESULTADOS
echo
echo
echo
echo
echo
echo
"Adicao : ";
$a;
" + ";
$b;
" = ";
$adicao;
echo "<br />";
echo
echo
echo
echo
echo
echo
"Subtracao : ";
$c;
" - ";
$a;
" = ";
$subtracao;
echo "<br />";
?>
25

…Continue com as outras operações.
OPERADOR DE STRING

Conhecido como concatenação,
armazenas uma ou mais strings.
é
possível
juntar
e
<?php
$nome = "Antonio Itamar";
$sobrenome = " Junior";
$nome_completo = $nome . $sobrenome;
echo $nome_completo;
?>
26
APRENDA FAZENDO

Escreva o código abaixo no arquivo operador_string.php
<?php
$nome = "Antonio Itamar";
$sobrenome = " Junior";
$nome_completo = $nome . $sobrenome;
echo $nome_completo;
?>
27
CONCATENAÇÃO AVANÇADA
28
OPERADORES DE ATRIBUIÇÃO DE COMBINAÇÃO

Cada um dos operadores abaixo, é um modo abreviado de
fazer uma operação aritmética.
Operador
Utilização
Equivalente a
+=
$a += $b
$a = $a + $b
-=
$a -= $b
$a = $a - $b
*=
$a *= $b
$a = $a * $b
/=
$a /= $b
$a = $a / $b
29
%=
$a %= $b
$a = $a % $b
APRENDA FAZENDO
<?php
$a =
echo
$a =
$a =
$a
$a
$a
$a
. “Oi";
.
. “Brasil";
. "Teste";
$a = $a . "Teste";
$sobrenome = " Junior";
$nome_completo = $nome . $sobrenome;
echo $nome_completo;
?>
30
AULA 2
•
Pré e pós incremento e decremento
PRÉ E PÓS INCREMENTO E DECREMENTO

Pré-incremento – primeiro incrementa (+1) na variável
informada em seguida retorna o valor incrementado.
++$variavel;

Pós-incremento – primeiro retorna o valor da variável em
seguida é incrementado (+1).
$variavel++;

Para decrementar (--) é semelhante, entretanto o valor da
variável vai decrementar em vez de incrementar.
32
APRENDA FAZENDO

Escreva o código abaixo no arquivo pre_pos_incremento.php
<?php
echo
echo
echo
echo
echo
echo
echo
'Pos-Incremento';
'<br />';
'Primeira Chamada = ' . $i++;
'<br />';
'Segunda Chamada = ' . $i;
'<br />';
'<br />';
echo
echo
echo
echo
echo
'Pre-Incremento';
'<br />';
'Primeira Chamada = ' . ++$j;
'<br />';
'Segunda Chamada = ' . $j;
?>
33

diferença de = para ==
34
ESTRUTURA DE CONTROLE: INSTRUÇÃO IF


Case sensitive;
Sintaxe para única instrução
if( expressão Boolean )
instruções

Sintaxe para várias instruções
if( expressão Boolean )
{
instruções
}

Sintaxe alternativa

Substitui a chave de abertura ({) por dois-pontos (:) e a chave de
fechamento por uma nova palavra-chave, que será endif
if( expressão Boolean ):
instruções
endif;
35
APRENDA FAZENDO
36
TABELA DA VERDADE

E | OU

If com mais de uma condição.
37
ESTRUTURA DE CONTROLE: INSTRUÇÃO ELSE
38
ESTRUTURA DE CONTROLE: INSTRUÇÃO ELSEIF
39
ESTUDO DE CASO
40
ESTRUTURA DE CONTROLE: INSTRUÇÃO SWITCH


Funciona de modo semelhante a instrução if.
Sintaxe
switch ( $a )
{
case 'Brasil':
//EXECUTA AÇÃO
break;
case 5:
//EXECUTA AÇÃO
break;
default:
//EXECUTA AÇÃO
break;
}

A palavra-chave break quer dizer que a instrução irá parar
assim que encontrá-la.
41
<?php
$a = ‘Brasil’;
APRENDA FAZENDO
switch ( $a )
{
 Escreva o código abaixo no arquivo
case 'Brasil':
echo ‘Sou Brasileiro’;
break;
switch.php
case 'Argentina‘:
echo "Sou Argentino";
break;
case 'Estados Unidos':
echo 'Sou Norte Americano';
break;
default:
echo 'Não possuo nacionalidade';
break;
}
?>
42
ESTRUTURA DE CONTROLE PARA REPETIÇÃO

As instruções while, do-while, for e foreach, são
consideradas instruções de controle iterativo (repetição),
podendo executar alguma parte do código várias vezes.
43
ESTRUTURA DE CONTROLE: INSTRUÇÃO WHILE

Como em uma instrução if ele conta com uma condição seja
‘true’ ou ‘false’.
No início de cada iteração, a condição será testada, se a
condição for true a instrução será executada, caso seja false,
o bloco não será executado e o loop terminará.

Sintaxe

while( expressão Boolean )
{
instruções
}

Sintaxe alternativa
while( expressão Boolean ):
instruções
endwhile;
44
APRENDA FAZENDO

Escreva o código abaixo no arquivo while.php
<?php
$a = 0;
while ( $a < 10 )
{
echo $a . ‘<br />';
$a++;
}
?>
45
ESTRUTURA DE CONTROLE: INSTRUÇÃO DO-WHILE

Loops do-while são bem similares aos loops while, exceto
pelo fato de que a condição é verificada no fim de cada
iteração em vez de no começo.

A primeira iteração de um loop do-while é garantidamente
executada (a condição só é verificada no fim da iteração) .

Não é obrigatório executar o loop (condição diferente de true).

Sintaxe única
do
{
instruções
}
while( expressão Boolean );
46
APRENDA FAZENDO

Escreva o código abaixo no arquivo do_while.php
<?php
//EXECUTA A PRIMEIRA ITERAÇÃO, E ENTRA NO LOOP
$a = 0;
do
{
echo $a . ‘<br />';
$a++;
}
while ( $a < 10 );
echo ‘<br />';
//EXECUTA APENAS A PRIMEIRA ITERAÇÃO, MAS NÃO EXECUTA O LOOP
$a = 0;
do
{
echo $a . ‘<br />';
$a++;
}
while ( $a > 10 );
?>
47
ESTRUTURA DE CONTROLE: INSTRUÇÃO FOR

Sintaxe
for( expressão 1 ; expressão 2 ; expressão 3 )
{
instruções
}




Expressão 1 – é executada uma vez incondicionalmente no
início do loop (normalmente valor inicial de um contador).
Expressão 2 – é avaliada no início de cada iteração, se a
expressão for true o loop continua, caso seja false o loop
termina (normalmente testará o contador com um limite).
Expressão 3 – é executada no fim de cada iteração
(normalmente ajustará o valor do contador).
Sintaxe alternativa
for( expressão 1 ; expressão 2 ; expressão 3 ):
instruções
endfor;
48
APRENDA FAZENDO

Escreva o código abaixo no arquivo for.php
<?php
//SINTAXE 1
for ( $a = 1; $a <= 10; $a++ )
{
echo $a . ‘ ‘;
}
?>
49
ESTRUTURA DE CONTROLE: INSTRUÇÃO FOR



Cada uma das expressões pode ser vazia ou conter múltiplas
expressões separadas por vírgulas.
Em expr2, todas as expressões separadas por vírgula são
avaliadas mas o resultado é obtido pela última parte.
expr2 vazia significa que o loop pode rodar indefinidamente
(PHP considera-a implicitamente como TRUE, como em C).
50
APRENDA FAZENDO

Escreva o código abaixo no arquivo for.php
<?php
//SINTAXE 1
for ( $a = 1; $a <= 10; $a++ )
{
echo $a . ‘ ‘;
}
echo ‘<br />‘;
//SINTAXE 2
for ( $a = 1; ; $a++ )
{
if ( $a > 10 )
{
break;
}
echo $a . ‘ ‘;
}
?>
51
ESTRUTURA DE CONTROLE: BREAK E CONTINUE



break cancela a execução do comando for, foreach, while, dowhile ou switch atual.
break aceita um argumento numérico opcional que diz a ele
quantas estruturas aninhadas englobadas devem ser
quebradas.
http://www.php.net/manual/pt_BR/control-structures.break.php
52
ESTRUTURA DE CONTROLE: INSTRUÇÃO DECLARE


O construtor declare é utilizado para configurar diretivas de
execução para blocos de código. A sintaxe do declare é
similar a sintaxe de outros construtores de controle.
http://br2.php.net/manual/pt_BR/controlstructures.declare.php
53
AULA 3
•
Array
FUNÇÕES DO PHP

Conheça algumas forma de visualizar o conteúdo de um array.
Função
Descrição
var_damp()
Utilizado para representação estruturada sobre uma
ou mais expressões, incluindo o tipo, a chave e o
valor
print_r()
Utilizado para imprimir a estrutura de um array,
contendo a chave e o valor
<pre></pre>
Tag HTML para formatar uma saída (texto).
55
APRENDA FAZENDO

Escreva o código abaixo no arquivo array.php
<?php
$a = array( 10 , 20 , 30 );
//IMPRIMINDO ARRAY - VAR_DUMP
var_dump( $a );
echo '<br />‘;
//IMPRIMINDO ARRAY - PRINT_R
print_r( $a );
echo '<br />';
//FORMATANDO IMPRESSÃO - VAR_DUMP
echo '<pre>';
var_dump( $a );
echo '</pre>';
echo '<br />';
//FORMATANDO IMPRESSÃO - PRINT_R
echo '<pre>';
print_r( $a );
echo '</pre>';
?>
56
ARRAY – ACESSANDO CONTEÚDO

Arquivo: acessando_array.php
<?php
$a = array( 10 , 20 , 30 , ‘Brasil’ , true , 30.7 );
echo
echo
echo
echo
echo
echo
$a[0]
$a[1]
$a[2]
$a[3]
$a[4]
$a[5]
.
.
.
.
.
.
'<br
'<br
'<br
'<br
'<br
'<br
/>‘;
/>‘;
/>‘;
/>‘;
/>‘;
/>‘;
Manipular valor
echo $a[0] = ‘Alterando valor da posição 0.‘;
echo $a[0] . '<br />‘;
?>Observação:

Echo $a[] // vai dar erro.
57
ESTUDO DE CASO – ACESSANDO ARRAY

Arquivo: estudo_caso_acessando_array.php
<?php
$a = array( 10 , 20 , 30 , ‘Brasil’ , true , 30.7 );
For( $i = 0 ; $i <= 5 ; $i++ )
{
echo $a[$i] . '<br />‘;
}
?>
58
ARRAYS COM ÍNDICES (CHAVES)

O função array por padrão já cria automaticamente suas chaves,
iniciando com 0 e indo até N;
A chave pode ser string ou integer;
Arrays com chaves Float, serão transformados em Int;
Utilizar True como chave será interpretado como Integer 1.
Utilizando False como chave será avaliado como Integer 0.
Utilizando Null como chave será avaliada como uma String vazia.
O valor pode ser qualquer tipo PHP;

Sintaxe






array( chave =>
, ...
)
valor
59
ACESSANDO CONTEÚDO DE ARRAY COM CHAVES

Declara o array com todas as chaves e valores necessários
$a = array( 'mouse' => 30 , 'monitor' => 400 , 'teclado' => 45 );

Declara o array com apena uma chave e um valor,
implementando o resto depois da declaração inicial do array
$a = array( 'mouse’ => 30 );
$a['monitor'] = 400;
$a['teclado'] = 45;

Não foi iniciado nenhum array
$a[‘mouse'] = 30;
$a['monitor'] = 400;
$a['teclado'] = 45;
60
APRENDA FAZENDO

Escreva o código abaixo no arquivo array_chave.php (1/2)
<?php
//SINTAXE 1
$a = array( 'mouse' => 30 , 'monitor' => 400 , 'teclado' => 45 );
//SINTAXE 2
$b = array( 'mouse' => 30 );
$b['monitor'] = 400;
$b['teclado'] = 45;
//SINTAXE 3
$c['mouse'] = 30;
$c['monitor'] = 400;
$c['teclado'] = 45;
//EXIBIR CONTEÚDO
echo $a['mouse'] . '<br />';
echo $b['teclado'] . '<br />';
echo $c['monitor'] . '<br />';
61
...CONTINUAÇÃO

Escreva o código abaixo no arquivo array_chave.php (2/2)
$d = array( 'a' => true ,
3 => 20 ,
5.3 => 30 ,
true => 'Texto 1' ,
false => 'Texto 2' ,
null => 'Texto3‘
);
//IMPRIMIR ARRAY - VAR_DUMP
echo '<pre>';
var_dump( $d );
echo '</pre>';
echo '<br />';
//FORMATANDO IMPRESSÃO - PRINT_R
echo '<pre>';
print_r( $d );
echo '</pre>';
?>
62
FUNÇÕES DO PHP

Conheça algumas forma de visualizar o conteúdo de um array
utilizando funções de iteração.
Função
Descrição
foreach
Estrutura de controle similar a while e for,
oferecendo uma maneira fácil de iterar sobre
arrays ( matrizes)
63
ESTRUTURA DE CONTROLE: INSTRUÇÃO FOREACH


O foreach funciona somente com variáveis do tipo arrays,
qualquer variável diferente de array a função retornará um
erro “Warning: Invalid argument supplied for foreach()”
Sintaxe
foreach ( variavel_array as $valor )
{
instrucoes
}


Varre uma matriz dada por variavel_array. Em cada 'loop', o valor do
elemento corrente é atribuído a $valor .
Sintaxe alternativa
foreach ( variavel_array as $chave => $valor )
{
instrucoes
}
64

Atribui a chave do elemento atual à variável $chave em cada
iteração.
APRENDA FAZENDO

Escreva o código abaixo no arquivo foreach.php
<?php
$a = array( ‘mouse’ => 30 , 'monitor' => 400 , 'teclado' => 45 );
//SINTAXE 1
foreach ( $a as $valor )
{
echo $valor . ' ';
}
echo '<br />';
echo '<br />';
//SINTAXE 2
foreach ( $a as $chave => $valor )
{
echo 'Chave: ' . $chave . ', valor: ' . $valor . '<br />';
}
?>
65
OPERADORES DE ARRAY
Nome
Operador Exemplo
Resultado
União
+
$a + $b
O array $b é anexado a $a, mas os conflitos
de
chaves
não
são
adicionados,
prevalecendo $a
Igualdade
==
$a == $b
Verdadeiro se $a e $b contêm os mesmos
valores com as mesmas chaves.
Identidade
===
$a === $b
Verdadeiro se $a e $b contêm os mesmos
valores do mesmo tipo na mesma ordem
com as mesmas chaves.
Desigualdade
!=
$a != $b
Verdadeiro se $a e $b não contêm os
mesmos valores.
Desigualdade
<>
$a <> $b
O mesmo que !=.
Não-identidade
!==
$a !== $b
Verdadeiro se $a e $b não contêm os
mesmos valores do mesmo tipo na mesma66
ordem.
APRENDA FAZENDO

Escreva o código abaixo no arquivo array_operadores.php
<pre>
<?php
$a
$b
$c
$d
$e
=
=
=
=
=
array(
array(
array(
array(
array(
1 , 2 , 3 );
'a' => 1 , 2 , 3 );
1 => 2 , 2 => 3 , 0 => 1 );
'1' , '2' , '3' );
5 => 'Brasil' , 6 => 'Argentina' , 7 => 'Chile' );
//UNIÃO DE ARRAYS
print_r( $a + $b );
//UNIÃO DE ARRAYS
print_r( $a + $e );
//IGUALDADE DE ARRAYS
var_dump( $a == $c );
//IDENTIDADE DE ARRAYS
var_dump( $a === $c );
//IDENTIDADE DE ARRAYS
var_dump( $a === $d );
?>
</pre>
67
AULA 4
•
Função
FUNÇÕES





São utilizadas para encapsular um pedaço de código que
realiza uma tarefa única e bem definida.
Não é possível cancelar ou alterar a definição de funções
previamente declaradas.
Qualquer código PHP válido pode aparecer dentro de uma
função, mesmo outras funções.
É iniciada com a palavra-chave function.
Sintaxe declaração
function nome()
{
instruções da função
}

Sintaxe chamada
nome();
69
FUNÇÕES – NOMENCLATURA






É importante considerar que o nome da função deve ser
descritivo – descrever o que a função faz.
Não é possível sobrepor uma função – não é possível ter
mais de uma função com o mesmo nome.
Não é permitido cria uma função com o mesmo nome de uma
função predefinida pelo PHP.
Somente é permitido: letras , número e sublinhados.
Não pode iniciar com número.
Não é case-sensitive – nome() é igual a NOME().
Válido
Inválido
nome()
5nome()
nome2()
somar-numeros()
70
_nome_tres()
$exibir()
nomeQuatro()
count()
APRENDA FAZENDO

Escreva o código abaixo no arquivo funcao.php
<?php
function hello()
{
echo 'Hello World';
}
?>

Chamando funções
nome_da_função();
$nome_da_variável();
<?php
$nome = ‘hello’;
function hello()
{
echo 'Hello World‘ . ‘<br />’;
}
hello();
$nome();
?>
71
FUNÇÕES – ESCOPO
$a = 1;
echo $a; //Exibe 1
function hello()
{
echo $a; //Não exibe nada
}
echo $a; //Exibe 1
$a = 1;
echo $a; //Exibe 1
function
{
$a =
$b =
echo
echo
}
hello()
3;
5;
$a; //Exibe 3
$b; //Exibe 5
echo $a; //Exibe 1
echo $b; //Não exibe nada

Conclusão


O que esta dentro da função só funciona dentro;
O que esta fora só funciona fora da função;
72
FUNÇÕES – RETORNO


Funciona como um exit na função.
Diferença: echo X return
<?php
<?php
function hello()
{
echo 'Hello World';
}
function hello()
{
return ( 'Hello World' );
}
hello();
?>
echo hello();
?>
73
APRENDA FAZENDO

Escreva o código abaixo no arquivo funcao_retorno.php
<?php
function hello()
{
return ( 'Hello World' );
}
echo hello();
$a = hello();
?>
74
ESTUDO DE CASO – FUNÇÃO
75
FUNÇÕES – PARÂMETRO





Os parâmetros permitem introduzir vários valores em uma
função para influenciar seu comportamento.
Todos os parâmetros serão obrigatórios excerto quando for
definido como opcional (atribuído um valor padrão).
É permitido informar mais parâmetros do que foi declarado na
função.
Não é permitido informar menos parâmetros do que foi
declarado.
Sintaxe
function nome( $par1 , $par2 , .... )
{
}
function nome( $par1 , $par2 , $par3 = 1 , .... )
{
}
76
APRENDA FAZENDO

Escreva o código abaixo no arquivo funcao_parametro.php
<?php
function hello( $par1 )
{
echo 'Hello ' . $par1;
}
hello( 'World' );
echo '<br />';
//FUNÇÃO COM VALOR OPCIONAL
function hello2( $par1 , $par2 = 'Blue' )
{
echo 'Hello ' . $par1 . ' ' . $par2;
}
hello2( 'World' );
echo '<br />';
hello2( 'World' , 'red' );
?>
77
ESCOPO DE VARIÁVEIS

Escopo refere-se ao local onde a variável é visível.
Superglobal
Visíveis por toda parte dentro de um script
Constantes
Uma vez declarada, são sempre visíveis
globalmente, podem ser usadas dentro e
fora das funções
Variáveis
Declaradas em um script são visíveis por
todo esse script, mas não dentro de
funções
78
<?php
function calculadora( $num1 , $num2 , $operacao )
{
if ( $operacao == "adicao" )
{
$resultado = $num1 + $num2;
}
elseif ( $operacao == "subtracao" )
{
$resultado = $num1 - $num2;
}
elseif ( $operacao == "multiplicacao" )
{
$resultado = $num1 * $num2;
}
elseif ( $operacao == "divisao" )
{
$resultado = $num1 / $num2;
}
else
{
$resultado = "Informe uma operacao valida”;
}
return ( $resultado );
}
echo calculadora( 1 , 2 , “adicao" );
?>
79
<?php
function imprimirArray( $par1 )
{
foreach ( $par1 as $valor )
{
$b = $b . $valor;
}
return ( $b );
}
$a = array( 1 , 2 , 3 , 4 , 5 );
echo imprimirArray( $a );
?>
80
FUNÇÕES – PARÂMETRO POR REFERÊNCIA

Veja aprenda fazendo.
81
APRENDA FAZENDO

Escreva o código abaixo no arquivo funcao_parametro_por_referencia.php
<?php
function incrementar( &$par1 , $incremento = 1 )
{
$par1 = $par1 + $incremento;
}
$valor = 10;
echo $valor . '<br />';
incrementar( $valor );
echo $valor . '<br />';
echo '<br />';
$valor2 = 20;
echo $valor2 . '<br />';
incrementar( $valor2 , 5 );
echo $valor2 . '<br />';
?>
82
AULA 5
•
Orientação a Objetos
ORIENTAÇÃO A OBJETOS – 10 HORAS
- Declaração de classe
- Nomenclatura
- Instanciar classe
- Utilizar atributos e métodos de classe
OOP – PROGRAMAÇÃO ORIENTADA A OBJETOS
85
DECLARAÇÃO DE CLASSE

A classe é formada por:



Atributos ( variáveis ) utilizando a palavra-chave var;
Métodos ( funções ) utilizando a palavra-chave function;
Sintaxe
class NomeDaClasse
{
var $atributo;
function metodo()
{
}
}
86
APRENDA FAZENDO

Escreva o código abaixo no arquivo classe.php
<?php
class NomeDaClasse
{
var $atributo1;
var $atributo2;
function metodo1()
{
}
function metodo2( $par1 , $par2 )
{
}
}
?>
87
NOMENCLATURA




Não é possível declarar mais de um atributo ou método com o
mesmo nome.
Classe
Atributo
Método
88
INSTANCIAR CLASSE



Após declarar uma classe, é possível criar um ou vários
objetos que seja membro dela.
A criação de objetos é conhecida também como criar uma
instância ou instanciar uma classe.
Para informar ao servidor que queremos instanciar uma
classe iremos utilizar a palavra-chave new.
class NomeDaClasse
{
var $atributo;
function metodo()
{
}
}
$a = new NomeDaClasse();

Neste momento, a variável $a possui um objeto da classe
NomeDaClasse.
89
UTILIZAR ATRIBUTOS E MÉTODOS DE CLASSE



Todos os atributos e métodos de uma classe pertencem
apenas ao escopo da classe e de seus objetos,
Não é possível utilizar um atributo ou chamar um método sem
referenciar sua classe.
Sintaxe para utilização fora da classe.
class NomeDaClasse
{
var $atributo;
function metodo()
{
}
}
$a = new NomeDaClasse();
$a->atributo;
$a->atributo = 1;
$a->metodo();
90
APRENDA FAZENDO

Escreva o código abaixo no arquivo instanciar_classe.php
<?php
class Carro
{
var $ano;
var $cor;
function andar()
{
return('Método que faz o carro andar!');
}
}
//CRIAR UMA INSTÂNCIA DA CLASSE CARRO.
$carro1 = new Carro();
//ATRIBUIR VALORES AO OBJETO.
$carro1->ano = 2009;
$carro1->cor = 'Prata';
//IMPRIMIR VALORES DO OBJETO.
echo $carro1->ano;
echo '<br />';
echo $carro1->cor;
echo '<br />';
//CHAMAR FUNCIONALIDADES DO OBJETO.
echo $carro1->andar();
?>
91
ESTUDO DE CASO

Arquivo: estudo_caso_instanciar_classe.php
Transporte
+ ano
+ cor
+ velocidade
+ andar()
+ parar()
Impressão:
Ano: 2009
Cor: Preto
Velocidade: 300
Moto andando…
Moto Parada

92
UTILIZAR ATRIBUTO E MÉTODO INTERNO



Para ter acesso a atributos ou métodos dentro de uma classe,
deverá ser utilizado a palavra-chave $this ( variável nativa ).
$this é uma usada para referenciar o objeto corrente (objeto
utilizado no momento).
Sintaxe para utilização dentro da classe.
class NomeDaClasse
{
var $atributo;
function metodo()
{
$this->atributo;
$this->metodo2();
}
function metodo2()
{
}
}
$a = new NomeDaClasse();
$a->atributo = 3;
$a->metodo();
93
Categoria
+ nome
+ descricao
+ inserir ()
+ alterar()
+ excluir()
+ listar()
94
<?php
class Carro
{
var $ano;
var $cor;
function andar()
{
return( 'Método que faz o carro andar!<br />‘ . $this->obterInformacao() );
}
function obterInformacao()
{
return('Informações obtidas - Ano: ' . $this->ano . ' , Cor: ' . $this->cor);
}
}
//CRIAR UMA INSTÂNCIA DA CLASSE CARRO.
$carro1 = new Carro();
//ATRIBUIR VALORES AO OBJETO.
$carro1->ano = 2009;
$carro1->cor = 'Prata';
//IMPRIMIR VALORES DO OBJETO.
echo $carro1->ano;
echo '<br />';
echo $carro1->cor;
//CHAMAR FUNCIONALIDADES DO OBJETO.
echo $carro1->andar();
echo '<br />';
echo $carro1->obterInformacao();
?>
95
UTILIZAR ATRIBUTO E MÉTODO DE OUTRA
CLASSE
96
HERANÇA


É ser capaz incorporar os atributos e métodos de uma classe
previamente definida.
Para uma classe herdar atributos e métodos de outra classe
usa-se a palavra-chave extends.
class A
{
var $atributo1;
function metodo1()
{
}
}
class B extends A
{
var $atributo2;
function metodo2()
{
}
}
$b = new B();
$b->atributo2;
$b->metodo2();
$b->atributo1;
$b->metodo1();
97
APRENDA FAZENDO

Arquivo: usuario.php
<?php
class Usuario
{
var $nome;
var $email;
var $senha;
function inserir()
{
return ('Chamando método para inserir usuário.');
}
function obterInformacao()
{
return ('Obter Informações de Usuário.');
}
}
?>
98
APRENDA FAZENDO

Arquivo: cliente.php
<?php
class Cliente extends Usuario
{
}
?>

Arquivo: funcionario.php
<?php
class Funcionario extends Usuario
{
var $cargo;
var $salario;
}
?>
99
APRENDA FAZENDO

Arquivo: cliente.php
<?php
class Cliente extends Usuario
{
}
$objeto = new Cliente();
$objeto->nome = 'Junior';
$objeto->email = '[email protected]';
$objeto->senha = '123';
echo $objeto->inserir();
echo $objeto->obterInformacao();
?>
100
APRENDA FAZENDO

Arquivo: funcionario.php
<?php
class Funcionario extends Usuario
{
var $cargo;
var $salario;
}
$objeto = new Funcionario();
$objeto->nome = 'Júnior';
$objeto->email = '[email protected]';
$objeto->senha = '123';
$objeto->cargo = 'Programador';
$objeto->salario = 3000;
echo $objeto->inserir();
echo $objeto->obterInformacao();
?>
101
FUNÇÕES DO PHP

Conheça algumas forma de importar arquivos .
Função
Descrição
require
Importar o arquivo informado para o arquivo que
esta chamando a função, caso não seja
encontrado o arquivo informado será exibido um
Warning seguido de um Fatal error.
include
Semelhante ao require porém, caso não seja
encontrado o arquivo informado será exibido
apenas um Warning.
102
require_once
Identico ao require porém importa o arquivo
APRENDA FAZENDO - REQUIRE

Arquivo: cliente.php
<?php
require_once('usuario.php');
class Cliente extends Usuario
{
...
}
?>

Arquivo: funcionario.php
<?php
require_once('usuario.php');
class Funcionario extends Usuario
{
...
}
?>
103
POLIMORFISMO
104
APRENDA FAZENDO

Arquivo: funcionario.php
<?php
require_once('usuario.php');
class Funcionario extends Usuario
{
var $cargo;
var $salario;
function obterInformacao()
{
return ('Obter Informações de Funcionário.');
}
}
$objeto = new Funcionario();
$objeto->nome = 'Junior';
$objeto->email = '[email protected]';
$objeto->senha = '123';
$objeto->cargo = 'Programador';
$objeto->salario = 3000;
echo $objeto->inserir();
echo $objeto->obterInformacao();
?>
105
APRENDA FAZENDO

Arquivo: funcionario.php
<?php
require_once('usuario.php');
class Funcionario extends Usuario
{
var $cargo;
var $salario;
function obterInformacao()
{
return ('Obter Informações de Funcionário.<br />' .
'Nome: ' . $this->nome . '<br />' .
'E-mail: ' . $this->email . '<br />' .
'Senha: ' . $this->senha . '<br />' .
'Cargo: ' . $this->cargo . '<br />' .
'Salário: ' . $this->salario . '<br />');
}
}
$objeto = new Funcionario();
... ALIMENTAÇÃO DO OBJETO ...
?>
106
ESTUDO DE CASO

Saída do arquivo: funcionario.php
Chamando método para inserir usuário.
Obter Informações de Funcionário.
Nome: Júnior
E-mail: [email protected]
Senha: 123
Cargo: Programador
Salário: 3000

Saída do arquivo: cliente.php
Chamando método para inserir usuário.
Obter Informações de Usuário.
Nome: Júnior
E-mail: [email protected]
Senha: 123
107
VISIBILIDADE

Conheça as quatro formas de especificar atributos e métodos
de classe.
Acesso
Descrição
public (default)
Os recursos podem ser acessados de dentro
ou de fora da classe.
private
Os recursos podem ser acessados apenas
dentro da classe onde foi definido e não
serão herdados.
protected
Os recursos podem ser acessados apenas
dentro da classe onde foi definido e em seus
descendentes.
108
APRENDA FAZENDO

Escreva o código abaixo no arquivo visibilidade.php
<?php
class A
{
public $atributo1;
protected $atributo2;
private $atributo3;
public function metodo1()
{
echo 'Chamando o método 1!
}
protected function metodo2()
{
echo 'Chamando o método 2!
}
private function metodo3()
{
echo 'Chamando o método 3!
}
public function metodo4()
{
$this->atributo3;
$this->metodo3();
echo 'Chamando o método 4!
}
}
<br />';
<br />';
<br />';
109
<br />';
CONTINUAÇÃO...
class B extends A
{
public function metodo5()
{
$this->atributo1;
$this->atributo2;
//$this->atributo3; //Ocorre erro porque o $atributo3 é private.
$this->metodo1();
$this->metodo2();
//$this->metodo3(); //Ocorre erro porque o metodo3() é private.
}
}
$a = new A();
$a->atributo1;
//$a->atributo2; //Ocorre erro porque
//$a->atributo3; //Ocorre erro porque
$a->metodo1();
//$a->metodo2; //Ocorre erro porque o
//$a->metodo3; //Ocorre erro porque o
$a->metodo4();
o $atributo2 é protected.
o $atributo3 é private.
metodo2() é protected.
metodo3() é private.
$b = new B();
$b->atributo1;
$b->metodo1();
$b->metodo5();
?>
110
VISIBILIDADE FINAL

Não permite sobrepor um método.
111
APRENDA FAZENDO

Escreva o código abaixo no arquivo visibilidade_final.php
<?php
class A
{
public $atributo1;
public function metodo1()
{
echo 'Chamando o método 1! <br />';
}
final function metodo2()
{
echo 'Chamando o método 2! <br />';
}
}
class B extends A
{
//O MÉTODO metodo2 FOI DEFINIDO COMO final NA CLASSE A.
public function metodo2()
{
echo 'Chamando o método 2! <br />';
}
}
?>
112
CONSTRUTOR



É chamado automaticamente quando um objeto é criado.
Deve ser definido como público, para poder instanciar objetos
de fora da classe.
Para definir métodos como construtor de uma classe, deverá
ser utilizado a palavra-chave __construct.
class NomeDaClasse
{
public $atributo;
public function __construct()
{
}
}
$a = new NomeDaClasse();
113
APRENDA FAZENDO

Arquivo: construtor.php
<?php
class A
{
var $cargo;
var $salario;
public function __construct()
{
return ('Chamando o método construtor.');
}
}
$objeto = new Funcionario();
$objeto->nome = 'Junior';
$objeto->email = '[email protected]';
$objeto->senha = '123';
$objeto->cargo = 'Programador';
$objeto->salario = 3000;
echo $objeto->inserir();
echo $objeto->obterInformacao();
?>
114
APRENDA FAZENDO

Escreva o código abaixo no arquivo construtor.php
<?php
class A
{
public function __construct()
{
echo 'Chamando o método construtor! <br />';
}
public function metodo1()
{
return 'Chamando metodo1! <br />';
}
}
class B
{
public function __construct( $mensagem )
{
return 'Chamando o método construtor com a mensagem ' . $mensagem . '! <br
/>';
}
}
$a = new A();
$a->metodo1();
$b = new B( 'Hello Construct Class' );
?>
115
ATRIBUTOS E MÉTODOS ESTÁTICOS

Um método estático não pode chamar atributos não-estáticos.
116
APRENDA FAZENDO

Escreva o código abaixo no arquivo static.php
<?php
class A
{
public static $atributo1 = '123 <br />';
public static function metodo1()
{
echo 'Chamando metodo1! <br />';
}
}
//CHAMAR ESTATICAMENTE.
A::metodo1(); //O método pode ou não ser static.
echo A::$atributo1; //O atibuto deve ser static.
echo '<br />';
//CHAMAR POR OBJETO.
$a = new A();
$a->metodo1(); //O método pode ou não ser static.
echo $a->atributo1; //Não é possível chamar atributo estático pelo objeto;
?>
117
ATRIBUTOS E MÉTODOS ESTÁTICOS

Para ter acesso a atributos ou métodos estáticos dentro de
uma classe, devemos utilizar a palavra-chave self::
118
COMPARANDO STATIC COM NÃO-STATIC
119


Desabilite (comentando) todo o script do static.php
Escreva o código abaixo no arquivo static.php
<?php
class A
{
public static $atributo1 = '123 <br />';
public static function metodo1()
{
echo self::$atributo1;
echo 'Chamando metodo1! <br />';
self::metodo2();
}
public static function metodo2()
{
echo 'Chamando metodo2! <br />';
}
}
//CHAMAR ESTATICAMENTE.
A::metodo1(); //O método pode ou não ser static.
echo A::$atributo1; //O atibuto deve ser static.
echo '<br />';
//CHAMAR POR OBJETO.
$a = new A();
$a->metodo1(); //O método pode ou não ser static.
echo $a->atributo1; //Não é possível chamar atributo estático pelo objeto;
?>
120
PADRÃO GET E SET

Utilizar os atributos da classe sempre private, excerto quando
a regra de negócio não permitir.
class NomeDaClasse
{
private $atributo;
public function getAtributo()
{
return ( $this->atributo );
}
public function setAtributo( $valor )
{
$this->atributo = $valor;
}
}
$a = new NomeDaClasse();
$a->setAtributo( 'Brasil' );
$a->getAtributo();
121
APRENDA FAZENDO

Escreva o código abaixo no arquivo get_set.php
<?php
class Carro
{
private $ano;
private $cor;
public function getAno()
{
return $this->ano;
}
public function setAno( $valor )
{
$this->ano = $valor;
}
public function getCor()
{
return $this->cor;
}
public function setCor( $valor )
{
$this->cor = $valor;
}
}
$a = new Carro();
//$a->ano; //Atributo privado é acessado somente dentro da classe.
$a->setAno( 2009 );
echo $a->getAno() . '<br />';
$a->setCor( 'Branco' );
echo $a->getCor();
?>
122
ESTUDO DE CASO

Implementar o Padrão Get Set nas classes:
 Usuario
 Funcionario
 Cliente
123
ESTUDO DE CASO

Arquivo: estudo_caso_calculadora_get_set.php
Calculadora
- num1
- num 2
+ getNum1()
+ setNum1( $value )
+ getNum2()
+ setNum2( $value )
+ somar()
+ subtrair()
+ multiplicar()
+ dividir()
124
ESTUDO DE CASO – ACESSAR ATRIBÚTO PRIVADO
Class Funcionario
 Ladrao 6%
 Mulher 50%
 Receita 100%
 Pretendente 2x
 Se nao informar ninguem pede para informar quem
que ver.

125
APRENDA FAZENDO

Arquivo: funcionario.php
<?php
class Funcionario extends Usuario
{
private $cargo;
private $salario;
public function getSalario( $interessado == 'receita' )
{
if( $interessado == 'receita' )
{
return( $this->salario );
}
elseif( $interessado == 'ladrão' )
{
return( $this->salario * 0.06 );
}
...
}
126
}
$objeto = new Funcionario();
$objeto->getSalario( ‘ladrão’ );
PROGRAMAÇÃO WEB
- Métodos GET, POST, REQUEST
MÉTODO GET, POST E REQUEST
128

Explicar como passar variaveis pela url
129

Fazer um form_funcionario.html e enviar para class
Funcionario e exibir os dados da mesma.
130
ESTUDO DE CASO
POST
form_calculadora.html
processar_form_calculadora.php
Calculadora
Número 1:
- num1
- num 2
- operacao
Número 2:
Operação:
Calcular
+ getNum1()
+ setNum1( $value )
+ getNum2()
+ setNum2( $value )
+ getOperacao
+ setOperacao( $value )
+ calcular()
131
PHP + MYSQL – 5 HORAS
- Abrir conexão
- Executar comandos SQL
FUNÇÕES DO PHP

Conheça mais algumas funções necessárias.
Função
Descrição
mysql_connect()
Abre ou reutiliza uma conexão com um servidor
MySQL.
die()
Construtor da linguagem equivalente a exit().
mysql_error()
Retorna o texto do erro da ultima função MySQL.
mysql_select_db
Seleciona um banco de dados MySQL.
133
ABRIR CONEXÃO
134
APRENDA FAZENDO

Escreva o código abaixo no arquivo conexao.php
<?php
//TENTAR ABRIR UMA CONEXÃO COM BANCO DE DADOS.
$linkConexao = mysql_connect( 'localhost' , 'root', '‘ ) or
die( 'Não foi possível se conectar ao servidor MySQL: ' . mysql_error() );
//SELECIONAR BANCO DE DADOS
mysql_select_db( 'banco_1' , $linkConexao ) or
die( 'Não foi possível selecionar o banco da dados.' );
?>
135
FUNÇÕES DO PHP

Conheça mais algumas funções necessárias.
Função
Descrição
require()
A instrução inclui e avalia o arquivo informado.
mysql_query()
Envia uma consulta MySQL.
mysql_num_rows()
Obtém o número de linhas em um resultado
136
EXECUTAR COMANDOS SQL
137
APRENDA FAZENDO

Escreva o código abaixo no arquivo executar_comandos_sql.php
<?php
//IMPORTAR O ARQUIVO DE CONEXÃO COM O BANCO DE DADOS.
require( 'conexao.php' );
//Executando a consulta SQL
$comandoSQL = “INSERT INTO carro (modelo,ano,cor) VALUES (‘monza’,1993,’Preto’)”;
$resultado = mysql_query( $comandoSQL );
?>
138
$linha_afetada1 = mysql_fetch_assoc($resultado);
echo $linha_afetada1[‘modelo’] . ‘<br />’;
echo $linha_afetada1[‘cor’] . ‘<br />’;
echo $linha_afetada1[‘ano’] . ‘<br />’;
Echo ‘<br />’;
$linha_afetada2 = mysql_fetch_assoc($resultado);
echo $linha_afetada2[‘modelo’] . ‘<br />’;
echo $linha_afetada2[‘cor’] . ‘<br />’;
echo $linha_afetada2[‘ano’] . ‘<br />’;
139
while ( $linha_afetada = mysql_fetch_assoc($resultado) )
{
echo $linha_afetada[‘modelo’] . ‘<br />’;
echo $linha_afetada[‘cor’] . ‘<br />’;
echo $linha_afetada[‘ano’] . ‘<br />’;
echo ‘<br />’;
}
140
ESTUDO DE CASO
POST
form_inserir_usuario.html
sql_inserir_usuario.php
Usuario
Nome:
- nome
- email
- senha
E-mail:
Senha:
Salvar
+ getNome()
+ setNome( $value )
+ getLogin()
+ setLogin( $value )
+ getSenha()
+ setSenha( $value )
+ inserir()
141
ESTUDO DE CASO
sql_inserir_usuario.php
<?php
//1. IMPORTAR CONEXÃO DO BANCO DE DADOS.
require 'conexao.php';
//2. ESCREVER COMANDO SQL.
$comandoSQL = "INSERT INTO usuario( nome , email , senha )
VALUES (
'" . $_POST['nome'] . "' ,
'" . $_POST['email'] . "' ,
'" . $_POST['senha'] . "' )";
//3. EXECUTAR COMANDO SQL.
$resultado = mysql_query( $comandoSQL );
//4. EXIBIR MENSAGEM DE RETORNO.
if ($resultado == true)
{
 Complete os get’s e set’s para todos os atributos.
echo 'Usuário inserido com sucesso .';
}
else
{
echo'Falha ao inserir usuário.';
}
?>
142
LISTAR_USUARIOS.PHP
<table border=”1”>
<tr bgcolor=“#F7F7F7”>
<td width=“100”>Código</td>
<td width=“200”>Nome</td>
<td width=“60”>Editar</td>
<td width=“60”>Excluir</td>
</tr>
<tr>
<td width=“100”>1</td>
<td width=“200”>Junior</td>
<td width=“60”>Ed</td>
<td width=“60”>Ex</td>
</tr>
</table>
143
<?php
require ‘conexao.php’;
$comando_sql = “SELECT * FROM usuario”;
$resultado = mysql_query( $comando_sql );
if ($resultado == false)
{
exit( ‘Falha ao recuperar usuário.’ );
}
$numLinhas = mysql_num_rows($resultado);
if ( $numLinhas == 0 )
{
exit( ‘Nenhum usuário encontrado.’ )
}
?>
144
<?php while( $linha_afetada = mysql_fetch_assoc($resultado) ){ ?>
<tr>
<td width=“100”><?php echo $linha_afetada[‘id_usuario’]?></td>
<td width=“200”><?php echo $linha_afetada[‘nome’]?></td>
<td width=“60”><a href=“form_alterar_usuario.php? id=<?php echo
$linha_afetada[‘id_usuario’]?>”>Ed</a></td>
<td width=“60”>
<a href=“confirmar_exclusao_usuario.php?id=<?php echo $linha_afetada[‘id_usuario’]?>”>
Ex</a></td>
</tr>
<?php } ?>
145

Cria os dois arquivos de alterar e de confirmar
exclusao
146
Arquivo: form_alterar_usuario.php
<form action=“sql_alterar_usuario.php” method=“POST”>
Nome: <input type=“text” name=“nome” value=“123” />
<br />
E-mail: <input type=“text” name=“email” value=“123” />
<br />
Senha: <input type=“password” name=“senha” value=“123” />
<br />
<input type=“submit” value=“salvar”>
</form>
<br />
<br />
147
<a href=“listar_usuarios.php”>Voltar para lista</a>
Arquivo: confirmar_exclusao_usuario.php
Deseja realmente excluir o usuario?
<br />
<br />
<a href=“sql_excluir_usuario.php?id=<?php echo $_GET[‘id’]?>”>Sim</a>
<br />
<a href=“listar_usuarios.php”>Nao</a>
148
Arquivo: sql_excluir_usuario.php
<?php
require ‘conexao’;
$comandoSQL = “DELETE FROM usuario WHERE id_usuario =“ . $_GET[‘id’];
$resultado = mysql_query( $resultado );
If( $resultado == true)
{
echo ‘Usuário excluido com sucesso.’;
}
else
{
echo ‘Falha ao excluir o usuário.’;
}
?>
<br />
<a href=“listar_usuarios.php”>Voltar para lista de usuários.</a>
149
Arquivo: form_alterar_usuario.php
<?php
require ‘conexao.php’;
$comandoSQL = “SELECT * FROM usuario WHERE id_usuario = ” . $_GET[‘id’];
$resultado = mysql_query( $comandoSQL );
if ($resultado == false)
{
exit(‘Falha ao executar comando SQL’);
}
$num_linhas = mysql_num_rows( $resultado );
if ( $num_linhas == 0 )
{
exit(‘’Nenhum usuário encontrado com o código informado);
}
… continua no proximo slide
150
Arquivo: form_alterar_usuario.php
…continuacao…
$linha_afetada = mysql_fetch_assoc( $resultado );
?>
<form action=“sql_alterar_usuario.php” method=“POST”>
Nome: <input type=“text” name=“nome” value=“<?php echo $linha_afetada
[‘nome’]?>” />
<br />
E-mail: <input type=“text” name=“email” value=“123” />
<br />
Senha: <input type=“password” name=“senha” value=“123” />
<br />
<input type=“text” name=“id” value=“<?php echo $_GET[‘id’]?>”>
<input type=“submit” value=“salvar”>
</form>
<br />
<br />
<a href=“listar_usuarios.php”>Voltar para lista</a>
151
ALTERAR
sql_alterar_usuario.php
<?php
require 'conexao';
//2. ESCREVER COMANDO SQL.
$comandoSQL = "UPDATE usuario SET
nome = '" . $_POST['nome'] . "' ,
email = '" . $_POST['email'] . "' ,
senha = '" . $_POST['senha'] . "'
WHERE id_usuario = " . $_POST['id'];
//3. EXECUTAR COMANDO SQL.
$resultado = mysql_query( $comandoSQL );
//4. EXIBIR MENSAGEM DE RETORNO.
if ( $resultado == true )
{
echo 'Usuário alterado com sucesso.';
}
else
{
echo 'Falha ao alterar usuário.';
}
?>
<a href=“listar_usuarios.php”>Voltar para lista</a>
152

Mudar campo id para hidden
153
ARQUITETURA PRIMÁRIA
form_inserir_usuario.html
sql_excluir_usuario.php
GET
sql_alterar_usuario.php
POST
POST
sql_inserir_usuario.php
form_alterar_usuario.php
confirmar_exclusao_usuario.php
154
listar_usuario.php
ARQUITETURA PRIMÁRIA - OO
Qual método?
form_inserir_usuario.html
Usuario.php
Usuario
POST
form_alterar_usuario.html
GET
listar.html
confirmar_exclusao_usuario.html
- id_usuario
- nome
- email
- senha
+ inserir()
+ alterar()
+ listar()
+ excluir()
+ confirmarExclusao()
+ exibirFormInserir()
+ exibirFormAlterar()
+ buscarTodos()
+ buscarPorId()
155
ARQUITETURA PRIMÁRIA CENTRALIZADA – OO
Qual class ?
Qual método?
POST
form_inserir_usuario.html
form_alterar_usuario.html
Index.php
listar.html
confirmar_exclusao_usuario.html
Usuario.php
156
PRIMEIRO PASSO.

Criar tabela no banco de dados.
CREATE TABLE usuario
(
id_usuario int not null auto_increment,
nome varchar(100),
email varchar(50),
senha varchar(15),
primary key (id_usuario)
)
157
SEGUNDO PASSO

form_inserir_usuario.html
Criar o formulário de inserção.
<form action="index.php?classe=Usuario&metodo=inserir" method="POST">
Nome: <input name="nome">
<br />
E-mail: <input name="email">
<br />
Senha: <input name="senha">
<br />
<input type="submit" value="Salvar">
</form>
158
TERCEIRO PASSO

Usuario.php
Criar método na classe, para exibir o formulário de inserção
<?php
class Usuario
{
public function exibirFormInserir()
{
require( 'form_inserir_usuario.html' );
}
}
?>
159
index.php?classe=Usuario&metodo=exibirFormInserir
160
QUARTO PASSO

Usuario.php
Criar e encapsular os atributos da classe.
<?php
class Usuario
{
private $idUsuario;
private $nome;
private $email;
private $senha;
public function setId( $valor )
{
$this->idUsuario = $valor;
}
public function getId()
{
return( $this->idUsuario );
}
}
?>

Complete os get’s e set’s para todos os atributos.
161
QUINTO PASSO

Criar o método inserir.
Usuario.php
<?php
class Usuario
{
public function inserir()
{
//1. CRIAR UM OBJETO E ALIMENTAR COM OS DADOS DO FOMULÁRIO.
$objeto = new Usuario();
$objeto->setNome( $_POST['nome' ] );
$objeto->setEmail( $_POST[ 'email' ] );
$objeto->setSenha( $_POST[ 'senha' ] );
//2. ESCREVER COMANDO SQL.
$comandoSQL = "INSERT INTO carro ( nome , email , senha )
VALUES (
'" . $objeto->getNome() . "' ,
'" . $objeto->getEmail() . "' ,
'" . $objeto->getSenha() . "' )";
//3. EXECUTAR COMANDO SQL.
$resultado = mysql_query( $comandoSQL );

Complete os get’s e set’s para todos os atributos.
//4. EXIBIR MENSAGEM DE RETORNO.
}
?>
162
PÁGINA CONTROLADORA




1 – Recuperar classe e método;
2 – Importar (require) arquivo da classe informada.
Index.php
3 – Cria um objeto da classe informada.
4 – Chamar o método informado pela url, na classe importada
<?php
//RECUPERAR A CLASSE E O MÉTODO INFORMADO PELO USUÁRIO ATRAVÉZ DA URL.
$classe = $_GET[ 'classe' ];
$metodo = $_GET[ 'metodo' ];
//DEFINIR UMA CLASSE E UM MÉTODO PADRÃO
if ( $classe == false ) $classe = 'Usuario';
if ( $metodo == false ) $metodo = 'listar';
//IMPORTAR A CLASSE INFORMADA PELA URL.
require( $classe . '.php' );
//CRIAR OBJETO DA CLASSE INFORMADA.
$objClasse = new $classe();
//ACESSAR O MÉTODO INFORMADO PELA URL.
$objClasse->$metodo();
?>
163
<?php
$resultadoCategoria = Categoria::buscarTodos();
?>
<form action=“index.php?classe=produto&metodo=inserir”>
<?php if ($resultadoCategoria == true) :?>
<select name=“categoria”>
<?php while( $linha_afetada = mysql_fetch_assoc( $resultadoCategoria ) ):?>
<option value=“<?php echo $linha_afetada[‘id_categoria’]?>”><?php echo
$linha_afetada[‘nome’]?></option>
<?php endwhile;?>
</select>
<?php endif;?>
164
APRENDA FAZENDO

Escreva o código abaixo no arquivo executar_comandos_sql.php
<?php
//IMPORTAR O ARQUIVO DE CONEXÃO COM O BANCO DE DADOS.
require( 'conexao.php' );
//Executando a consulta SQL
$comandoSQL = 'SELECT * FROM carro';
$resultado = mysql_query( $comandoSQL , $linkConexao );
//RECUPERAR QUANTIDADE DE REGISTROS ENCONTRADOS.
$numeroLinhas = mysql_num_rows( $resultado );
if ( $numeroLinhas == 0 )
{
exit( 'Nenhum registro encontrado.' );
}
//EXIBIR NÚMERO DE REGISTROS ENCONTRADOS.
echo 'Foram encontrados: ' . $numeroLinhas . ' registros.<br /><br />';
//RECUPERAR CADA LINHA OBTIDA NO RESULTADO.
while ( $linhaAfetada = mysql_fetch_assoc( $resultado ) )
{
echo 'Código: ' . $linhaAfetada['id_carro'] . '<br />';
echo 'Modelo: ' . $linhaAfetada['modelo'] . '<br />';
echo 'Cor: ' . $linhaAfetada['cor'] . '<br />';
echo 'Ano: ' . $linhaAfetada[‘ano'] . '<br />';
echo '<br />';
}
?>
165
REFERÊNCIA BIBLIOGRÁFICAS

PHP
http://www.php.net
 Zend.PHP.5.Certification.Study.Guide.2006


MySQL
http://www.mysql.com [acessado em 1 de maio de 2009 as 21Hrs]
 http://dev.mysql.com [acessado em 1 de maio de 2009 as 20Hrs]
 http://www.w3schools.com/sql [acessado em 1 de maio de 2009 as 21Hrs]

166
APRENDA FAZENDO


Escreva o código abaixo no arquivo heranca.php
Fazer um exemplo mas simples para exemplificar a herança
porque esse do transporte sera usando para exeplificar
require.
<?php
class Transporte
{
var $velocidade;
function andar()
{
echo 'Transporte andando! <br /> ';
}
}
class Carro extends Transporte
{
var $cor;
var $rodas;
function ligar()
{
echo 'Carro ligado! <br /> ';
}
167
APRENDA FAZENDO

Arquivo: class_transporte.php
<?php
class Transporte
{
var $velocidade;
function andar()
{
echo 'Transporte andando! <br /> ';
}
}
?>
168
APRENDA FAZENDO

Arquivo: class_carro.php
<?php
class Carro extends Transporte
{
var $cor;
var $rodas;
function ligar()
{
echo 'Carro ligado! <br /> ';
}
function obterInfo()
{
echo 'Cor: ' . $this->cor . ' Quantidade de rodas: ' . $this->rodas . '
Velocidade Máxima: ' . $this->velocidade . '<br />‘;
}
}
?>
169
<?php
class Transporte
{
var $velocidade;
function andar()
{
echo 'Transporte andando! <br /> ';
}
}
class Carro extends Transporte
{
var $cor;
var $rodas;
function ligar()
{
echo 'Carro ligado! <br /> ';
}
function obterInfo()
{
echo 'Cor: ' . $this->cor . ' Quantidade de rodas: ' . $this->rodas . '
Velocidade Máxima: ' . $this->velocidade . '<br />‘;
}
}
$carro1 = new Carro();
$carro1->cor = 'Vermelho';
$carro1->rodas = 4;
$carro1->velocidade = 130;
$carro1->ligar();
$carro1->obterInfo();
$carro1->andar();
?>
170
<?php
require ( ‘class_transporte.php’ );
class Carro extends Transporte
{
var $cor;
var $rodas;
function ligar()
{
echo 'Carro ligado! <br /> ';
}
function obterInfo()
{
echo 'Cor: ' . $this->cor . ' Quantidade de rodas: ' . $this->rodas . '
Velocidade Máxima: ' . $this->velocidade . '<br />‘;
}
}
171
Download

break