• Nenhum resultado encontrado

Faculdade União. Professor Luciano Roberto Rocha

N/A
N/A
Protected

Academic year: 2021

Share "Faculdade União. Professor Luciano Roberto Rocha"

Copied!
34
0
0

Texto

(1)

Faculdade União

PHP PRÁTICO

PHP PRÁTICO

(2)

Arquitetura de Softwares



Principais modelos de aplicações:



Standalone

Standalone

Standalone

Standalone



Cliente

Cliente----servidor

Cliente

Cliente

servidor

servidor

servidor



Arquitetura baseada na Web

Arquitetura baseada na Web

Arquitetura baseada na Web

Arquitetura baseada na Web



Arquitetura baseada na Web

Arquitetura baseada na Web

Arquitetura baseada na Web

Arquitetura baseada na Web

(3)

Modelo standalone

Todos os recursos necessários a execução do programa estão localizados em apenas uma máquina

Processos

Interface com o usuário

Sistema de arquivos Processos

SGBD

(4)

Cliente-servidor

Aplicação dividida em duas camadas Requisição (request) - Input

Resposta (response) - Output

Interface com o usuário

Sistema de arquivos Processos SGBD Cliente (gordo) Servidor

(5)

Sistemas baseados na Web

Modelo dividido em três camadas

Processos

Sistema de arquivos Requisição (request) - Input

Resposta (response) - Output

Interface com o usuário

Sistema de arquivos SGBD Cliente (magro) Servidor WEB Processos

(6)

Principais

Web Browsers

61,56% 0,62%

Fonte: W3Counter mai/2008 28,86% 1,15%

(7)

Disponibilização de Páginas Estáticas

browser url

servidor web Requisição (request) - Input

Resposta (response) - Output

http usuário arquivos path Textos Imagens vídeos Textos Imagens vídeos link

(8)



surgiu por volta de 1994 criado por

Rasmus

Rasmus

Rasmus

Rasmus

Ledorf

Ledorf

Ledorf

Ledorf

com

o nome de

P

ersonal

H

ome

P

age

Tools

para

substituir um conjunto de scripts Perl

que ele usava no desenvolvimento de

sua página pessoal;

Histórico da linguagem PHP

sua página pessoal;



Mais

tarde

Zeev

Zeev

Zeev

Zeev

Suraski

Suraski

Suraski

Suraski

e

Andi

Andi

Andi

Andi

Gutmans

Gutmans

Gutmans

Gutmans

reescreveram o analisador do PHP que contava com

o primeiro recurso de orientação a objetos;



Hoje o termo PHP é um acrônimo recursivo para

(9)

2. É um script PHP!

Requisição (request) - Input

Resposta (response) - Output

Integração PHP - HTML

USUÁRIO

SERVIDOR WEB

1. O cliente (browser) solicita uma página ao servidor Web. 3. O servidor Web aciona o módulo PHP. 5. O servidor Web envia a página HTML ao cliente. 6. O cliente (browser) exibe ao usuário o conteúdo HTML. 4. O módulo PHP interpreta os trechos em PHP do script e devolve ao servidor Web a página processada.

(10)



linguagem extremamente modularizada, ideal para

uso web



seu propósito principal é de implementar soluções

web velozes, simples e eficientes



pode ser embarcada no código HTML

Principais características



pode ser embarcada no código HTML



provê suporte a um grande número de bases de

dados



suporta os protocolos: IMAP, SNMP, NNTP, POP3,

(11)



open source



código executado no servidor (server-side)



velocidade e robustez



independência de plataforma

estruturado e orientação a objeto

Principais Vantagens



estruturado e orientação a objeto



portabilidade: "Write once, run anywhere“



curva de aprendizagem curta



tipagem fraca

(12)



Tags de abertura e fechamento do código php

Sintaxe Básica

<?php

linha 1

linha 2

...

<?php

linha 1

linha 2

...

<script language = “php”>

linha 1

linha 2

...

<script language = “php”>

linha 1

linha 2

...

1

2

...

?>

...

?>

<?

linha 1

linha 2

...

?>

<?

linha 1

linha 2

...

?>

...

</script>

...

</script>

<%

linha 1

linha 2

...

%>

<%

linha 1

linha 2

...

%>

3

4

(13)



Tags de abertura e fechamento do código php



Exemplos:

Sintaxe Básica

1. <?php echo 'se você quer servir documentos XHTML ou XML, faça assim'; ?>

2. <script language="php">

echo 'alguns editores (como FrontPage) não gostam de instruções de processamento';

1. <?php echo 'se você quer servir documentos XHTML ou XML, faça assim'; ?>

2. <script language="php">

echo 'alguns editores (como FrontPage) não gostam de instruções de processamento'; gostam de instruções de processamento';

</script>

3. <? echo 'esta é a mais simples, uma instrução de processamento SGML'; ?>

4. <% echo 'Você pode opcionalmente usar tags no estilo ASP'; %>

gostam de instruções de processamento';

</script>

3. <? echo 'esta é a mais simples, uma instrução de processamento SGML'; ?>

4. <% echo 'Você pode opcionalmente usar tags no estilo ASP'; %>

• Enquanto as tags vistas nos exemplos um e dois estão sempre disponíveis, o exemplo um é mais comumente usado, e recomendado, das duas.

•Tags curtas (exemplo três) estão disponíveis apenas quando são ativadas pela configuração short_open_tagno arquivo

php.ini.

• Tags no estilo ASP (exemplo quatro) estão disponíveis apenas quando ativadas atráves da diretiva de configuração asp_tagsno arquivo php.ini.

(14)



O PHP requer que as instruções sejam terminadas com um

ponto-e-vírgula ao final de cada comando.



A tag de fechamento de um

bloco de código PHP

automaticamente implica em um ponto-e-vírgula; você não

precisa ter um ponto-e-vírgula terminando a última linha de um

bloco PHP.

Separação de instruções

bloco PHP.



A tag de fechamento irá incluir uma nova linha logo após, se

estiver presente.

<?php

echo 'Este é um teste';

?>

<?php echo 'Este é um teste' ?>

<?php echo 'Nós omitimos a última tag de fechamento';

<?php

echo 'Este é um teste';

?>

<?php echo 'Este é um teste' ?>

(15)



O PHP suporta comentários no estilo 'C', 'C++' e shell do Unix

shell (estilo Perl). Por exemplo:

Comentários

<?php

echo 'Isto é um teste'; // Estilo de comentário de uma linha em c++

echo 'Isto é ainda outro teste';

/* Este é um comentário de múltiplas linhas ainda outra linha de comentário */

<?php

echo 'Isto é um teste'; // Estilo de comentário de uma linha em c++

echo 'Isto é ainda outro teste';

/* Este é um comentário de múltiplas linhas ainda outra linha de comentário */



Os comentários de estilo "uma linha" apenas comentam até o final da linha

ou do bloco PHP de código corrente, o que chegar primeiro.

 Isto significa que código HTML após // ... ?> ou # ... ?> SERÁ exibido: ainda outra linha de comentário */

echo 'Um teste final'; # Comentário de uma linha no estilo shell

?>

ainda outra linha de comentário */

echo 'Um teste final'; # Comentário de uma linha no estilo shell

?>

<h1>Isto é um <?php # echo 'simples';?> exemplo.</h1> <p>O cabeçalho acima irá dizer 'Isto é um exemplo'.</p> <h1>Isto é um <?php # echo 'simples';?> exemplo.</h1> <p>O cabeçalho acima irá dizer 'Isto é um exemplo'.</p>

(16)



O PHP suporta os oitos tipos primitivos.



São

São

São

São quatros

quatros

quatros tipos

quatros

tipos

tipos

tipos básicos

básicos

básicos::::

básicos

 boolean

 integer

 float (número de ponto flutuante, ou também double)

Tipos

float (número de ponto flutuante, ou também double)  string



Dois

Dois tipos

Dois

Dois

tipos

tipos

tipos compostos

compostos

compostos

compostos::::

 array

 object



E

E finalmente

E

E

finalmente

finalmente dois

finalmente

dois tipos

dois

dois

tipos

tipos

tipos especiais

especiais

especiais

especiais::::

 resource

(17)

Tipos

<?php

$a_bool

=

TRUE

;

// um booleano

$a_str

=

"foo"

;

// uma string

$a_str2

=

'foo'

;

// uma string

$an_int

=

12

;

// um inteiro

$an_flt

=

1.63

;

// um float

?>

<?php

$a_bool

=

TRUE

;

// um booleano

$a_str

=

"foo"

;

// uma string

$a_str2

=

'foo'

;

// uma string

$an_int

=

12

;

// um inteiro

$an_flt

=

1.63

;

// um float

?>



O PHP não requer (ou suporta) a definição de tipo explícita na

declaração de variáveis: o tipo de uma variável é determinado pelo

contexto em que a variável é utilizada.



Isto significa que, se você atribuir um valor string para a variável $var ,

$var se torna uma string. Se você então atribuir um valor inteiro para

$var , ela se torna um inteiro.

?>

?>

(18)



Um exemplo da conversão automática do PHP é o operador de adição '+'.



Se qualquer um dos operadores for float, então todos os operadores são

avaliados como floats, e o resultado será um float. De outra forma, se os

operadores forem interpretados como integers então o resultado será

um integer.

Manipulação de Tipos

<?php

$foo = "0"; // $foo é string (ASCII 48)

$foo += 2; // $foo é agora um inteiro (2)

$foo = $foo + 1.3; // $foo é agora um float (3.3)

$foo = 5 + "10 pequenos porcos"; // $foo é inteiro (15)

$foo = 5 + "10.5 minúsculos porcos"; // $foo é float (15.5)

?> <?php

$foo = "0"; // $foo é string (ASCII 48)

$foo += 2; // $foo é agora um inteiro (2)

$foo = $foo + 1.3; // $foo é agora um float (3.3)

$foo = 5 + "10 pequenos porcos"; // $foo é inteiro (15)

$foo = 5 + "10.5 minúsculos porcos"; // $foo é float (15.5)

(19)



As variáveis no PHP são representadas por um cifrão ($) seguido pelo

nome da variável. Os nomes de variável no PHP fazem distinção entre

maiúsculas e minúsculas.



Um nome de variável válido se inicia com uma letra ou sublinhado,

seguido de qualquer número de letras, algarismos ou sublinhados.

Variáveis

<?php

$var = 'Bob';

$Var = 'Joe';

echo "$var, $Var"; // exibe "Bob, Joe"

$4site = 'not yet'; // inválido; começa com um número

$fração = 'not yet'; // inválido; possui caracteres especiais

$_4site = 'not yet'; // válido; começa com um sublinhado

$täyte = 'mansikka'; // válido; 'ä' é um caracter ASCII 228

?> <?php

$var = 'Bob';

$Var = 'Joe';

echo "$var, $Var"; // exibe "Bob, Joe"

$4site = 'not yet'; // inválido; começa com um número

$fração = 'not yet'; // inválido; possui caracteres especiais

$_4site = 'not yet'; // válido; começa com um sublinhado

$täyte = 'mansikka'; // válido; 'ä' é um caracter ASCII 228

(20)



O PHP oferece um grande número de variáveis pré-definidas para

qualquer script que ele execute.



Alguns exemplos:

 $GLOBALS — Referencia todas variáveis disponíveis no escopo global  $_SERVER — Informação do servidor e ambiente de execução

 $_GET — HTTP GET variáveis  $_POST — HTTP POST variables

Variáveis pré-definidas

 $_POST — HTTP POST variables

 $_FILES — HTTP File Upload variáveis

 $_REQUEST — Variáveis de requisição HTTP  $_SESSION — Variáveis de sessão

 $_ENV — Environment variables  $_COOKIE — HTTP Cookies

 $php_errormsg — A mensagem de erro anterior

 $HTTP_RAW_POST_DATA — Informação não-tratada do POST  $http_response_header — Cabeçalhos de resposta HTTP  $argc — O número de argumentos passados para o script  $argv — Array de argumentos passados para o script

(21)



As principais categorias de operadores do PHP são:



Operadores de Atribuição



Operadores de String



Operadores Aritméticos



Operadores Relacionais (de comparação)



Operadores de Incremento/Decremento

Operadores



Operadores de Incremento/Decremento



Operadores Lógicos



Outros operadores menos utilizados:



Operador Bit-a-bit



Operadores de controle de erro



Operadores de Execução



Operadores de Arrays



Operadores de tipo

(22)



O operador básico de atribuição é "=". A sua primeira inclinação deve ser

a de pensar nisto como "é igual". Não. Isto quer dizer, na verdade, que o

operando da esquerda recebe o valor da expressão da direita (ou seja, "é

configurado para").



O valor de uma expressão de atribuição é o valor atribuído. Ou seja, o

valor de "$a = 3" é 3.

Além do operador básico de atribuição, há "operadores combinados“ que

Operadores de Atribuição



Além do operador básico de atribuição, há "operadores combinados“ que

permitem pegar um valor de uma expressão e então usar seu próprio

valor para o resultado daquela expressão. Por exemplo:

<?php $a = 3;

$a += 5; // configura $a para 8, como se disséssemos: $a = $a + 5;

$b = "Bom ";

$b .= "Dia!"; // configura $b para "Bom Dia!", como em $b = $b . "Dia!";

?> <?php $a = 3;

$a += 5; // configura $a para 8, como se disséssemos: $a = $a + 5;

$b = "Bom ";

$b .= "Dia!"; // configura $b para "Bom Dia!", como em $b = $b . "Dia!";

(23)



Há dois operadores de string. O primeiro é o operador de concatenação

('.'), que retorna a concatenação dos seus argumentos direito e

esquerdo.



O segundo é o operador de atribuição de concatenação ('.='), que

acrescenta o argumento do lado direito no argumento do lado esquerdo.

 Exemplos:

Operadores de String

<?php

$a = "Olá ";

$b = $a . "mundo!"; // agora $b contém "Olá mundo!"

$a = "Olá ";

$a .= "mundo!"; // agora $a contém "Olá mundo!"

?> <?php

$a = "Olá ";

$b = $a . "mundo!"; // agora $b contém "Olá mundo!"

$a = "Olá ";

$a .= "mundo!"; // agora $a contém "Olá mundo!"

(24)



Lembra-se da aritmética básica da escola? Estes operadores funcionam

exatamente como aqueles.

Operadores Aritméticos

Exemplo Exemplo Exemplo

Exemplo NomeNomeNomeNome ResultadoResultadoResultadoResultado -$a Negação Oposto de $a. $a + $b Adição Soma de $a e $b.

 O operador de divisão ("/") sempre retorna um valor com ponto flutuante, a não ser que os dois

operados seja inteiros .

 Operandos de módulo são convertidos para inteiros (removendo a parte decimal) antes de

processar.

$a - $b Subtração Diferença entre $a e $b. $a * $b Multiplicação Produto de $a e $b.

$a / $b Divisão Quociente de $a por $b. $a % $b Módulo Resto de $a dividido por $b.

(25)



Permitem que se estabeleça relação entre dois valores ou seja, realiza a

comparação entre dois valores.

Operadores Relacionais

Exemplo

Exemplo Exemplo

Exemplo NomeNomeNomeNome ResultadoResultadoResultadoResultado

$a == $b Igual Verdadeiro (TRUETRUETRUE) se $a é igual a $b.TRUE

$a === $b Idêntico Verdadeiro (TRUETRUETRUE) se $a é igual a $b, e eles são do TRUE mesmo tipo (introduzido no PHP4).

$a != $b Diferente Verdadeiro se $a não é igual a $b. $a <> $b Diferente Verdadeiro se $a não é igual a $b.

$a !== $b Não idêntico Verdadeiro de $a não é igual a $b, ou eles não são do mesmo tipo (introduzido no PHP4).

$a < $b Menor que Verdadeiro se $a é estritamente menor que $b. $a > $b Maior que Verdadeiro se $a é estritamente maior que $b. $a <= $b Menor ou igual Verdadeiro se $a é menor ou igual a $b.

(26)



O PHP suporta operadores de pré e pós-incremento e decremento no

estilo C.

Operadores de Incremento/Decremento

Exemplo Exemplo Exemplo

Exemplo NomeNomeNomeNome EfeitoEfeitoEfeitoEfeito

++$a Pré-incremento Incrementa $a em um, e então retorna $a. $a++ Pós-incremento Retorna $a, e então incrementa $a em um. $a++ Pós-incremento Retorna $a, e então incrementa $a em um. --$a Pré-decremento Decrementa $a em um, e então retorna $a. $a-- Pós-decremento Retorna $a, e então decrementa $a em um.

(27)



Esses operadores são utilizados para realizar junções ou disjunções

lógicas entre valores.

Operadores de Lógicos

Exemplo Exemplo Exemplo

Exemplo NomeNomeNomeNome ResultadoResultadoResultadoResultado

$a and $b E Verdadeiro (TRUETRUETRUETRUE) se tanto $a quanto $b são verdadeiros. $a or $b OU Verdadeiro se $a ou $b são verdadeiros.

$a or $b OU Verdadeiro se $a ou $b são verdadeiros.

$a xor $b XOR Verdadeiro se $a ou $b são verdadeiros, mas não ambos. ! $a NÃO Verdadeiro se $a não é verdadeiro.

$a && $b E Verdadeiro se tanto $a quanto $b são verdadeiros. $a || $b OU Verdadeiro se $a ou $b são verdadeiros.

(28)

 A construção if é uma das mais importantes implementações de muitas linguagens, incluindo o PHP.

 Ela permite a execução condicional de fragmentos de código. O PHP implementa uma estrutura if que é similar aquela do C:

Estrutura de Controle -

if

if (expressao) instrucoes if (expressao) instrucoes  Exemplo: <?php if ($a > $b)

echo "a é maior que b";

?>

// Quando existir mais de uma instrução utiliza-se os construtores { e }

<?php

if ($a > $b) {

echo "a é maior que b";

$b = $a; }

?> <?php

if ($a > $b)

echo "a é maior que b";

?>

// Quando existir mais de uma instrução utiliza-se os construtores { e }

<?php

if ($a > $b) {

echo "a é maior que b";

$b = $a; }

(29)

 else estende um comando if para executar uma instrução caso a expressão no comando if seja avaliada como FALSE.

 Exemplo:

Estrutura de Controle -

else

<?php

if ($a > $b) {

echo "a é maior que b"; } else {

<?php

if ($a > $b) {

echo "a é maior que b"; } else {

 O comando else só é executado se a expressão if for avaliada como FALSE, e se havendo qualquer expressão elseif, somente se todas elas forem avaliadas como FALSE também.

} else {

echo "a NÃO é maior que b"; }

?>

} else {

echo "a NÃO é maior que b"; }

(30)

 elseif, como seu nome sugere, é uma combinação de if e else. Da mesma forma que o else, ele estende um comando if para executar uma instrução diferente no caso de a expressão if original ser avaliada como FALSE. Porém, ao contrário de else, ele executará aquela expressão alternativa somente se a expressão condicional do elseif for avaliada como TRUE.

 Exemplo:

Estrutura de Controle -

elseif/else if

<?php <?php

 Podem haver vários elseifs dentro da mesma instrução if.

 No PHP, você também pode escrever 'else if' (em duas palavras) e o comportamento será

idêntico a um 'elseif' (em uma só palavra). <?php

if ($a > $b) {

echo "a é maior que b"; } elseif ($a == $b) {

echo "a é igual a b"; } else {

echo "a é menor que b b"; }

?> <?php

if ($a > $b) {

echo "a é maior que b"; } elseif ($a == $b) {

echo "a é igual a b"; } else {

echo "a é menor que b b"; }

(31)

 while são o tipo mais simples de criar um 'loop' em PHP. Eles se comportam como seus compatíveis em C. O formato básico de um comando while é:

 Ele pede que o PHP execute os comandos aninhados repetidamente,

enquanto a expressão do while é avaliada como TRUETRUETRUETRUE. O valor da expressão é verificada cada vez que se passa no começo do 'loop',

Estrutura de Controle -

while

while (expressao) instrucoes while (expressao) instrucoes

expressão é verificada cada vez que se passa no começo do 'loop', desta forma, mesmo que este valor mude durante a execução do(s) comando(s) aninhado(s), a execução não parará até o fim da iteração (cada vez que o PHP executa os comandos dentro do 'loop' é uma iteração).

<?php

/* exemplo 1 */

$i = 1;

while ($i <= 10) {

echo $i++; /* o valor impresso será $i depois do acréscimo (post-increment) */

} ?> <?php /* exemplo 1 */ $i = 1; while ($i <= 10) {

echo $i++; /* o valor impresso será $i depois do acréscimo (post-increment) */

}

(32)

 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 diferença principal dos loops while regulares é que a primeira iteração de um loop do-while é garantidamente executada (a condição só é verificada no fim da iteração)

 Há apenas uma sintaxe para loops do-while:

Estrutura de Controle -

do-while

<?php <?php

 O loop acima rodaria exatamente uma vez, desde que depois da primeira iteração, quando a condição é verificada, ela é avaliada como FALSEFALSEFALSEFALSE ($i não é maior que zero 0) e a execução do loop termina.

<?php $i = 0; do { echo $i; } while ($i > 0); ?> <?php $i = 0; do { echo $i; } while ($i > 0); ?>

(33)

 Loops for são os laços mais complexos em PHP. Eles se comportam como os seus compatíveis em C. A sintaxe de um loop for é:

 A primeira expressão (expr1) é avaliada (executada) uma vez incondicionalmente no

começo do loop.

No começo de cada iteração, expr2 é avaliada. Se ela é avaliada como TRUETRUETRUETRUE, o loop

Estrutura de Controle -

for

for (expr1; expr2; expr3) instrucoes for (expr1; expr2; expr3) instrucoes

 No começo de cada iteração, expr2 é avaliada. Se ela é avaliada como TRUETRUETRUETRUE, o loop

continua e o(s) comando(s) aninhado(s) é(são) executado(s). Se é avaliada como FALSE

FALSEFALSE

FALSE, a execução do 'loop' termina.

 No fim de cada iteração, expr3 é avaliada (executada). <?php /* exemplo 1 */ for ($i = 1; $i <= 10; $i++) { echo $i; } ?> <?php /* exemplo 1 */ for ($i = 1; $i <= 10; $i++) { echo $i; } ?>

(34)

 A instrução switch é similar a uma série de instruções IFs seguidas. Em muitas ocasiões, você poderá ter que comparar a mesma variável (ou expressão) com muitos valores diferentes, executando códigos diferentes dependendo com qual valor ele se encaixar. É exatamente para isso que a instrução switch faz.

 Os exemplos seguintes mostram duas maneiras diferentes de escrever a mesma coisa,

uma utilizando uma série de ifs e elseifs e a outra utlizando a instrução switch:

Estrutura de Controle -

switch

<?php

if ($i == 0) {

echo "i igual a 0"; } elseif ($i == 1) {

echo "i igual a 1"; } elseif ($i == 2) {

echo "i igual a 2"; }

?> <?php

if ($i == 0) {

echo "i igual a 0"; } elseif ($i == 1) {

echo "i igual a 1"; } elseif ($i == 2) {

echo "i igual a 2"; }

?>

<?php

switch ($i) { case 0:

echo "i igual a 0"; break;

case 1:

echo "i igual a 1"; break;

case 2:

echo "i igual a 2"; break; } ?> <?php switch ($i) { case 0:

echo "i igual a 0"; break;

case 1:

echo "i igual a 1"; break;

case 2:

echo "i igual a 2"; break;

}

?>

Referências

Documentos relacionados

Quem pretender arrematar dito(s) bem(ns) deverá comparecer no local, no dia e na hora mencionados, ou ofertar lances pela Internet através do site

O estudo teve por objetivo analisar o efeito da adição do equivalente energético do lactato sanguíneo com a medida de VO 2 durante a corrida em esteira horizontal (0%) e

vernáculo. A par do talento incomum, trazia um canto novo, brasileiro pelo menos n os motivos e modos de expressão. Nele se estampa um langor, um contraste violento entre extremos

O grafo de ligação do modelo proposto foi obtido através do cálculo dos potenciais característicos relacionados com as variáveis independentes do problema, densidade e velocidade,

4.1 Articular a publicação da Portaria do Programa de Conservação e Manejo em Cativeiro de Pyrrhura griseipectus Não significativo 4.2 Elaborar e implementar o Programa de

419 Alessandro Pascoal São José dos Campos - SP Há Há Há 420 Regina Gonçalves São José dos Campos - SP Há Há Há 421 Caroline Quirelli Sene Almada Lorena - SP Light bike 422

Concepções contemporâneas da Personalidade: concepções culturalistas, existencialistas, humanistas e sócio-históricas.. A Personalidade na teoria da

o ` u$ caso de conWito de interessesDdireitos (direito da liberdade de ` u$ caso de conWito de interessesDdireitos (direito da liberdade de eRpress9o para interesse pPblico