php 5.3 - introdução
TRANSCRIPT
Bacharel em Ciência da Computação (UFG) Especializando em Engenharia de Software
Analista de Sistemas – SIGMA / MDIC
Professor Formador EAD – NEAD/ETEB [email protected]
http://www.georgemendonca.com.br
Introdução
Conteúdo Programático
26/03/2011 2
• O que é PHP?
– PHP: Hypertext Preprocessor
– PHP é uma linguagem de script do lado servidor
– Scripts PHP são executados no servidor
– PHP suporta várias bases de dados (MySQL, Informix, Oracle, Sybase, Solid, PostgreSQL, Generic ODBC, etc)
– PHP é um software open source (código aberto)
– PHP é gratuito para baixar e utilizar.
Introdução
26/03/2011 3
• O que arquivos PHP podem fazer?
– Arquivos PHP podem conter texto, tags HTML e scripts.
– Arquivos PHP são retornados para o navegador como HTML simples.
– Arquivos PHP tem extensões de arquivo ".php", ".php3", ou ".phtml“.
Introdução
26/03/2011 4
• A história do PHP
– PHP/FI (Personal Home Page / Forms Interpreter): foi criado por Rasmus Lerdorf em 1995 (Pearl).
– Em 1997, PHP/FI 2.0, a segunda versão da implementação em C.
– PHP 3: totoalmente reescrito em 1997, assemelha ao PHP de hoje. Criado por And Gutmans e Zeev Suraski. Juntamente com Rasmus, lançaram esta versão em junho de 1998.
– PHP 4: Zend Engine, mais robusta, profissional, novas características, banco de dados, sessões, etc.
– PHP 5: Zend Engine 2, lançado em junho de 2004, novo modelo de Orientação a Objetos, novas características.
Introdução
26/03/2011 5
• Características do PHP
– Velocidade e robustez
– Estruturado
– Suporte a Orientação a Objetos
– Portabilidade – Independência de plataforma - "write once run anywhere" (escreva uma vez, rode em qualquer lugar);
– Tipagem Fraca
– Sintaxe similar a Linguagem C/C++ e o PERL
– Curva de aprendizado reduzida
– Documentação oficial em português
Introdução
26/03/2011 6
• Características do PHP
– Foi criado do zero para a internet em vez de ser a adaptação de uma tecnologia anterior
– Grande quantidade de módulos, bibliotecas prontas e frameworks disponíveis
– Flexibilidade para desenvolver códigos em outras linguagens.
Introdução
26/03/2011 7
• O que PHP pode fazer?
– Qualquer coisa que um script CGI faz e muit mais!
• Script no lado do servidor (server-side scripts)
– Este é o mais tradicional e principal campo de atuação do PHP
• Script de linha de comando.
– CLI – Command Line Interface
• Escrever aplicações desktop.
– PHP-GTK
Introdução
26/03/2011 8
• O que você precisa para começar?
– Ter acesso a um servidor Web com suporte PHP.
– Você pode: • Instalar o servidor web Apache (ou IIS) em seu próprio servidor,
instalar o PHP e o banco de dados MySQL, ou outro banco de sua preferência.
• Ou executar um instalador e configurador de um ambiente Web para PHP como o WAMP, LAMP, XAMP ou o Zend Server CE.
• Ou encontrar um plano de hospedagem web com suporte a PHP e Banco de Dados.
Introdução
26/03/2011 9
• Apache HTTP Server
– Servidor HTTP (HyperText Transfer Protocol).
– É a principal tecnologia da Apache Software Foundation, responsável por mais de uma dezena de projetos envolvendo tecnologias de transmissão via web, processamento de dados e execução de aplicativos distribuídos.
Introdução
26/03/2011 10
• Apache HTTP Server
– Mais bem sucedido servidor web livre
– Numa pesquisa realizada em Agosto de 2010 (Pesquisa realizada pelo site Netcraft) foi constatado que a utilização do Apache representa 56% dos servidores ativos no mundo.
– Software de licença livre e código aberto.
Introdução
26/03/2011 11
• Apache HTTP Server
– Criado para atender às demandas dos maiores provedores e sites web.
– Não tem concorrentes quanto à riqueza de recursos, estabilidade, performance, etc.
Introdução
26/03/2011 12
• Apache HTTP Server
– Total de sites em todos os domínios de Agosto de 1995 a Agosto de 2010.
Introdução
26/03/2011 13
• Apache HTTP Server
– Quota de mercado para os principais servidores em todos os domínios de Agosto de 1995 - agosto 2010.
Introdução
26/03/2011 14
• Apache HTTP Server
– Links oficiais:
• The Apache Software Foundation
• Apache - HTTP Server Project
Introdução
26/03/2011 15
• O lado Cliente
– Onde são processadas as diversas formas de interação entre o usuário e o sistema.
– Solicitam serviços para efetivar a interação entre usuário e sistema.
– Navegador: Fire Fox, IE, Opera, etc. • Responsável por mostrar o conteúdo recebido do servidor.
• JavaScript, Cookies, HTML, CSS, imagens, etc.
Arquitetura Cliente Servidor
26/03/2011 16
• O lado Servidor
– Estação onde estão sendo executados os aplicativos aos quais os acessos são feitos.
– Oferecem serviços especializados aos seus requisitantes.
– Repositório de regras de negócios do software web.
– Servidor Web, Servidor de Arquivos, Servidor de E-mail, Servidor de Banco de Dados.
Arquitetura Cliente Servidor
26/03/2011 17
Arquitetura Cliente Servidor
26/03/2011 18
Usuário
Servidor Web
Aplicação
WAN
MAN
LAN
Apache Banco
de
Dados
PHP
Cliente
(browser)
MySQL
PgSQL
Oracle Ativo
Passivo
Internet
• Aplicações Web:
– Blog
– Webmail
– E-comerce
– Portais Corporativos, Colaborativos, do Conhecimento, etc
– Intranet's corporativas
– Extranet's
– CMS's (Content Management Systems)
– Workflow/Groupware
Aplicações Web com PHP
26/03/2011 19
• Aplicações Web:
– Sistemas de Informação
– ERP's (Enterprise Resource Planning)
– Redes sociais: Orkut, Facebook, Linded In, Twitter, etc.
• Stand Alone:
– PHP GTK (aplicações desktop)
• Alguém pode dar mais exemplos?
Aplicações Web com PHP
26/03/2011 20
Como fazer o download do PHP?
http://www.php.net/downloads.php
Como instalar o PHP?
http://www.php.net/manual/en/install.php
Como fazer o download do servidor web Apache?
http://httpd.apache.org/download.cgi
Informações importantes sobre PHP
26/03/2011 21
• O primeiro script
Iniciando com PHP
26/03/2011 22
<html>
<head>
<title>Primeiro Script PHP</title>
</head>
<body>
<?php echo "Primeiro Script em PHP"; ?>
</body>
</html>
Código HTML
Código PHP
• Tags PHP
Iniciando com PHP
26/03/2011 23
// Tag padrão
<?php echo "Primeiro Script em PHP"; ?>
// Short open tags
<script language=“php”>
echo "Primeiro Script em PHP";
</script>
<? echo "Primeiro Script em PHP"; ?>
<% echo "Primeiro Script em PHP"; %>
• Case Sentitive
– Faz distinção entre maiúsculas e minúsculas
• Instruções terminadas por “;”
• Comentários
Iniciando com PHP
26/03/2011 24
// Uma linha
# Uma linha
/* Mais de uma
linha */
• Comentários PHP DOC
Iniciando com PHP
26/03/2011 25
/**
* Comentário para PHP DOC
* @author George Henrique
* @example Aula
* @copyright www.georgemendonca.com.br
* @version 1.0
*
*/
• Variáveis
– É um rótulo que identifica um repositório de dados (local de armazenamento na memória).
– Faz referência a um tipo de dado específico, isto é, a um número, a uma letra (caractere), a uma sequência de letras (string), etc.
– Possui um escopo, isto é, uma região do código (programa) onde é válida ou pode ser utilizada.
Iniciando com PHP
26/03/2011 26
• Variáveis
– Seu uso se dá em dois momentos:
• Declaração
• Utilização propriamente dita (leitura ou escrita)
– São representadas por $, seguidas pelo nome da variável.
Iniciando com PHP
26/03/2011 27
• Variáveis
– Atribuídas com o sinal de =
• Variável no lado esquerdo, valor no lado direito
– Não precisam ser declaradas ou inicializadas. Exemplo:
– Atenção: se não for inicializada o valor atribuído será NULO
Iniciando com PHP
26/03/2011 28
<?php $nome = "George Henrique"; ?>
• Tipos de Variáveis
– O PHP suporta os oitos tipos primitivos.
– São quatros tipos básicos: • boolean (valor verdade, TRUE ou FALSE)
• integer (conjunto Z = {..., -2, -1, 0, 1, 2, ...})
• float (número de ponto flutuante, ou também double)
• string (série de caracteres)
Iniciando com PHP
26/03/2011 29
• Tipos de Variáveis
– Dois tipos compostos: • Array (mapa ordenado)
• Object (objeto de uma classe)
– E finalmente dois tipos especiais: • Resource (referência a um recurso externo)
• NULL (variável sem valor ou não definida)
Iniciando com PHP
26/03/2011 30
• Tipos de Variáveis
– O manual também introduz alguns pseudo-tipos por razões de legibilidade: • mixed (indica que um parâmetro pode receber mais de um tipo)
• number (indica que um parâmetro pode ser integer ou float)
• callback (chamada de funções definidas como parâmetro)
– E a pseudo-variável $this. Utilizada para referenciar um objeto de uma classe.
Iniciando com PHP
26/03/2011 31
• Tipos de Variáveis
Iniciando com PHP
26/03/2011 32
<?php
$bool = TRUE; // um booleano
$str = "foo"; // uma string
$int = 12; // um inteiro
$double = 1.2; // ponto flutuante
echo gettype($bool)." <br />"; // imprime "boolean"
echo gettype($str)." <br />"; // imprime "string"
echo gettype($double)." <br />"; // imprime "double"
// Se é um inteiro, incrementa em quatro
if (is_int($int)) {
echo $int += 4;
}
// Se for string, imprime conteúdo, caso contrário não faz nada
if (is_string($bool)) {
echo "String: $bool";
}
Saída: boolean string double 16
• Variáveis variáveis
– Utilizado quando se necessita de criar variáveis e utilizá-las dinamicamente:
Iniciando com PHP
26/03/2011 33
<?php
$variavel_comum = "variavel_dinamica";
$$variavel_comum = "conteúdo da variável dinâmica";
echo $variavel_comum." <br />";
echo $$variavel_comum." <br />";
echo $variavel_dinamica;
Saída: variavel_dinamica conteúdo da variável dinâmica
• Funções úteis mostrar informações sobre variáveis:
– var_dump($var)
• Mostra informações sobre uma variável.
– var_export($var)
• Representação estruturada de uma variável.
– print_r($var)
• Imprime informações legíveis sobre uma variável.
Iniciando com PHP
26/03/2011 34
<?php
$mensagem = "Para frente e avante!";
var_dump($mensagem);
echo "<br/>";
var_export($mensagem);
echo "<br/>";
print_r($mensagem);
Saída: string(21) "Para frente e avante!" 'Para frente e avante!' Para frente e avante!
• Conversão de Tipos
– A conversão de tipos no PHP e possível graças a utilização do casting: • (int), (integer) - converte para inteiro
• (bool), (boolean) - converte para booleano
• (float), (double), (real) - converte para número de ponto flutuante
• (string) - converte para string
• (binary) - converte para string binária (PHP 6)
• (array) - converte para array
• (object) - converte para objeto
• (unset) - converte para NULL (PHP 5)
– Veja: Tabelas de comparação de tipo do PHP
–
Iniciando com PHP
26/03/2011 35
• Conversão de Tipos
Iniciando com PHP
26/03/2011 36
<?php
echo "<pre>";
var_dump((bool) "Olá");
var_dump((bool) "");
var_dump((bool) 1);
var_dump((bool) array());
var_dump((int)(3/2));
var_dump((integer) 4.5);
var_dump((int) 7.5);
var_dump(3 + "7.1");
var_dump("10 gatos" + 5);
var_dump((string) 5);
var_dump(array(1,2));
var_dump((object) array(1,2));
Saída: bool(true) bool(false) bool(true) bool(false) int(1) int(4) int(7) float(10.1) int(15) string(1) "5" array(2) { [0]=> int(1) [1]=> int(2) } object(stdClass)#1 (2) { [0]=> int(1) [1]=> int(2) }
• Constantes
– Uma constante é um identificador para um valor simples. É um valor que não se altera.
– Para definir uma constante, utilizamos a função define(), cuja sintaxe é:
Iniciando com PHP
26/03/2011 37
<?php
define("NOME", "<VALOR>");
• Funções úteis para constantes:
– defined("NOME_DA_CONSTANTE")
• Verifica a existência de uma constante e se ela foi definida.
– constant("NOME_DA_CONSTANTE")
• Retorna o valor de uma constante. Útil para recuperar constantes quando não se sabe o nome da constante ou quando é retornada por uma função.
Iniciando com PHP
26/03/2011 38
• Exemplo usando constantes
Iniciando com PHP
26/03/2011
// Nomes de constantes válidos
define("TITULO_BLOG", "Meu Blog");
define("MSG_CONTEUDO_BLOG", "Seja bem vindo!");
define("MENSAGEM_POPUP_CADASTRO", "Cadastro realizado com
sucesso!");
// Nomes de constantes inválidas
define("2VLR", "constante inválida");
// Isto é válido, mas deve ser evitado:
define("__TITULOMODULO__", "deve-se evitar");
define("RODAPE_BLOG", "© 2010 by George Mendonça. All rights
reserved.");
echo TITULO_BLOG."<br />".
MSG_CONTEUDO_BLOG."<br />".
__TITULOMODULO__."<br />".
MENSAGEM_POPUP_CADASTRO."<br />".
// 2VLR."<br />". (Error)
RODAPE_BLOG;
Saída: Meu Blog Seja bem vindo! deve-se evitar Cadastro realizado com sucesso! © 2010 by George Mendonça. All rights reserved.
• Constantes Pré-definidas
– __LINE__ - Retorna a linha atual do arquivo
– __FILE__ - Retorna o caminho com o nome do arquivo
– __DIR__ - Retorna o diretório.
– __FUNCTION__ - Retorna o nome da função atual.
– __CLASS__ - Retorna o nome da classe atual.
– __METHOD__ - Retorna o do método da classe atual.
– __NAMESPACE__ - Retorna o nome atual do namespace.
Iniciando com PHP
26/03/2011 40
• Variáveis Super Globais
– Variáveis nativas que estão sempre disponíveis em todos os escopos: • $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 variáveis
• $_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
Iniciando com PHP
26/03/2011 41
• Variáveis Super Globais
Iniciando com PHP
26/03/2011 42
echo $_SERVER["PHP_SELF"]."<br />";
echo $_SERVER["HTTP_HOST"]."<br />";
$nome = "George Henrique R. E. Mendonça";
echo $GLOBALS['nome']."<br />";
session_start();
$_SESSION['primeiro_nome'] = "George Henrique";
echo $_SESSION['primeiro_nome']."<br />";
echo $_GET["curso"]."<br />"; // Testar via URL: ?curso=PHP5
echo @$_POST["curso"]; Saída: /aulas-php5.3-oo/02-php/10-variavis-super-globais.php Localhost George Henrique R. E. Mendonça George Henrique PHP5
• Array
– Arrays em PHP são mapas ordenados de chaves
e valores, ou seja, você pode atribuir a um
elemento do array uma chave e um valor.
Iniciando com PHP
26/03/2011 43
Iniciando com PHP
26/03/2011 44
<?php
$frutas1 = array('banana','maçã','pêra');
$frutas2[] = 'banana';
$frutas2[] = 'maçã';
$frutas2[] = 'pera';
$frutas3 = array (
0 => 'banana',
1 => 'maçã',
2 => 'pêra'
);
$frutas4['frutax'] = 'banana';
$frutas4['frutay'] = 'maçã';
$frutas4['frutaz'] = 'pêra';
echo '<pre>';
print_r($frutas1);
print_r($frutas2);
print_r($frutas3);
print_r($frutas4);
Saída: Array ( [0] => banana [1] => maçã [2] => pera ) Array ( [0] => banana [1] => maçã [2] => pera ) Array ( [0] => banana [1] => maçã [2] => pera ) Array ( [frutax] => banana [frutay] => maçã [frutaz] => pera )
Iniciando com PHP
26/03/2011 45
<?php
echo $frutas1[1]; // maçã
echo '<br />';
echo $frutas2[0]; // banana
echo '<br />';
echo $frutas4['frutaz']; // pêra
Saída: maçã banana pêra
• Array
– Acessando os elementos
• Operadores
– Aritméticos:
Iniciando com PHP
26/03/2011 46
+ => 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
• Operadores
– Comparativos
Iniciando com PHP
26/03/2011 47
X == Y => X IGUAL A Y
X >= Y => X MAIOR OU IGUAL A Y
X <= Y => X MENOR OU IGUAL A Y
X != Y => X DIFERENTE DE Y
X <> Y => X DIFERENTE DE Y
X > Y => X MAIOR QUE Y
X < Y => X MENOR QUE Y
• Operadores
– De atribuição
Iniciando com PHP
26/03/2011 48
$num = 5; => Sinal de igualdade
$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”;
$num1 %= $num2; => $num1 = $num1 % $num2;
• Operadores
– Se o recurso track_errors estiver habilitado, qualquer mensagem de erro gerada pela expressão será gravada na variável global $php_errormsg. Esta variável será sobrescrita em cada erro, assim verifique-a constantemente se você quiser usá-la.
– O PHP suporta um operador de controle de erro: o sinal 'arroba' (@). Quando ele precede uma expressão em PHP, qualquer mensagem de erro que possa ser gerada por aquela expressão será ignorada.
– $nome = @$__POST['nome'];
Iniciando com PHP
26/03/2011 49
• Operadores
– O PHP suporta um operador de execução: acentos graves (``). Note que não são apóstrofes!
– O PHP tentará executar o conteúdo dos acentos graves como um comando do shell; a saída será retornada (isto é, ela não será simplesmente descarregada para a saída; ela pode ser atribuída a uma variável).
– A utilização do operador contra-apóstrofo é idêntica a função shell_exec().
Iniciando com PHP
26/03/2011 50
$output = `dir`;
echo "<pre>$output</pre>";
• Operadores
– Lógicos
Iniciando com PHP
26/03/2011 51
!X => verdadeiro se X for falso
X AND Y => verdadeiro se X e Y forem verdadeiros
X OR Y => verdadeiro se X ou Y forem verdadeiros
X XOR Y => verdadeiro se apenas um for verdadeiro
X && Y => verdadeiro se X e Y forem verdadeiros
X || Y => verdadeiro se X ou Y forem verdadeiros
• Operadores
– De string • 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. Veja em Operadores de Atribuição para mais informações.
Iniciando com PHP
26/03/2011 52
<?php
$a = "Olá ";
$b = $a . "mundo!"; // agora $b contém "Olá mundo!"
$c = "Olá ";
$c .= "mundo!"; // agora $a contém "Olá mundo!"
echo $a;
• Operadores
– Um exercício simples • Quais são os valores das variáveis $a, $b, $c, $x, $y e $z após a
execução do seguinte programa?
Iniciando com PHP
26/03/2011 53
<?php
$a = 2;
$b = 4;
$c = 6;
$x = --$c + $b;
$y = $b++ + $a;
$z = $a - $b--;