Você está na página 1de 53

Introdução

Bacharel em Ciência da Computação (UFG)


Especializando em Engenharia de Software

Analista de Sistemas – SIGMA / MDIC


Professor Formador EAD – NEAD/ETEB
george@georgemendonca.com.br
http://www.georgemendonca.com.br
Conteúdo Programático

26/03/2011 2
Introdução
• 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.

26/03/2011 3
Introdução
• 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“.

26/03/2011 4
Introdução
• 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.
26/03/2011 5
Introdução
• 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

26/03/2011 6
Introdução
• 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.

26/03/2011 7
Introdução
• 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

26/03/2011 8
Introdução
• 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.
26/03/2011 9
Introdução
• 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.

26/03/2011 10
Introdução
• 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.

26/03/2011 11
Introdução
• 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.

26/03/2011 12
Introdução
• Apache HTTP Server
– Total de sites em todos os domínios de Agosto de 1995 a
Agosto de 2010.

26/03/2011 13
Introdução
• Apache HTTP Server
– Quota de mercado para os principais servidores em todos os
domínios de Agosto de 1995 - agosto 2010.

26/03/2011 14
Introdução
• Apache HTTP Server

– Links oficiais:

• The Apache Software Foundation

• Apache - HTTP Server Project

26/03/2011 15
Arquitetura Cliente Servidor
• 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.

26/03/2011 16
Arquitetura Cliente Servidor
• 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.
26/03/2011 17
Arquitetura Cliente Servidor
MySQL
Passivo PgSQL
Ativo Oracle

Servidor Web
Apache Banco
WAN
MAN de
Usuário LAN Dados

Cliente
(browser)

Aplicação

PHP 18
26/03/2011
Internet
Aplicações Web com PHP
• 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

26/03/2011 19
Aplicações Web com PHP
• 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?


26/03/2011 20
Informações importantes sobre PHP

 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

26/03/2011 21
Iniciando com PHP
• O primeiro script

Código HTML
<html>
<head>
<title>Primeiro Script PHP</title>
Código PHP </head>
<body>
<?php echo "Primeiro Script em PHP"; ?>
</body>
</html>

26/03/2011 22
Iniciando com PHP
• Tags PHP

// 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"; %>

26/03/2011 23
Iniciando com PHP
• Case Sentitive
– Faz distinção entre maiúsculas e minúsculas

• Instruções terminadas por “;”

• Comentários

// Uma linha

# Uma linha

/* Mais de uma
linha */
26/03/2011 24
Iniciando com PHP
• Comentários PHP DOC

/**
* Comentário para PHP DOC
* @author George Henrique
* @example Aula
* @copyright www.georgemendonca.com.br
* @version 1.0
*
*/

26/03/2011 25
Iniciando com PHP
• 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.
26/03/2011 26
Iniciando com PHP
• 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.

26/03/2011 27
Iniciando com PHP
• 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:

<?php $nome = "George Henrique"; ?>

– Atenção: se não for inicializada o valor atribuído será NULO

26/03/2011 28
Iniciando com PHP
• 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)

26/03/2011 29
Iniciando com PHP
• 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)

26/03/2011 30
Iniciando com PHP
• 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.

26/03/2011 31
Iniciando com PHP
• Tipos de Variáveis
<?php Saída:
$bool = TRUE; // um booleano
$str = "foo"; // uma string boolean
$int = 12; // um inteiro string
$double = 1.2; // ponto flutuante double
echo gettype($bool)." <br />"; // imprime "boolean" 16
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";
}
26/03/2011 32
Iniciando com PHP
• Variáveis variáveis
– Utilizado quando se necessita de criar variáveis e utilizá-las
dinamicamente:

<?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
26/03/2011 dinâmica 33
Iniciando com PHP
• 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.
<?php
$mensagem = "Para frente e avante!";
Saída:
var_dump($mensagem);
string(21) "Para frente e avante!"
echo "<br/>";
'Para frente e avante!'
var_export($mensagem);
Para frente e avante!
echo "<br/>";
26/03/2011 print_r($mensagem); 34
Iniciando com PHP
• 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

26/03/2011 35
Iniciando com PHP
• Conversão de Tipos
Saída:
<?php bool(true)
echo "<pre>"; bool(false)
var_dump((bool) "Olá"); bool(true)
var_dump((bool) ""); bool(false)
int(1)
var_dump((bool) 1);
int(4)
var_dump((bool) array()); int(7)
var_dump((int)(3/2)); float(10.1)
var_dump((integer) 4.5); int(15)
var_dump((int) 7.5); string(1) "5"
var_dump(3 + "7.1"); array(2) {
var_dump("10 gatos" + 5); [0]=> int(1)
[1]=> int(2)
var_dump((string) 5);
}
var_dump(array(1,2)); object(stdClass)#1 (2) {
var_dump((object) array(1,2)); [0]=> int(1)
[1]=> int(2)
}

26/03/2011 36
Iniciando com PHP
• 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 é:

<?php

define("NOME", "<VALOR>");

26/03/2011 37
Iniciando com PHP
• 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.

26/03/2011 38
Iniciando com PHP
• Exemplo usando constantes
// 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 />". Saída:
__TITULOMODULO__."<br />". Meu Blog
Seja bem vindo!
MENSAGEM_POPUP_CADASTRO."<br />". deve-se evitar
// 2VLR."<br />". (Error) Cadastro realizado com sucesso!
26/03/2011 RODAPE_BLOG; © 2010 by George Mendonça. All rights reserved.
Iniciando com PHP
• 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.

26/03/2011 40
Iniciando com PHP
• 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

26/03/2011 41
Iniciando com PHP
• Variáveis Super Globais
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
26/03/2011 42
PHP5
Iniciando com PHP
• 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.

26/03/2011 43
Iniciando com PHP
Saída:
<?php Array
$frutas1 = array('banana','maçã','pêra'); (
[0] => banana
$frutas2[] = 'banana'; [1] => maçã
$frutas2[] = 'maçã'; [2] => pera
$frutas2[] = 'pera'; )
Array
(
$frutas3 = array ( [0] => banana
0 => 'banana', [1] => maçã
1 => 'maçã', [2] => pera
2 => 'pêra' )
); Array
(
$frutas4['frutax'] = 'banana'; [0] => banana
[1] => maçã
$frutas4['frutay'] = 'maçã'; [2] => pera
$frutas4['frutaz'] = 'pêra'; )
Array
echo '<pre>'; (
print_r($frutas1); [frutax] => banana
print_r($frutas2); [frutay] => maçã
print_r($frutas3); [frutaz] => pera
26/03/2011 ) 44
print_r($frutas4);
Iniciando com PHP
• Array

– Acessando os elementos

<?php

echo $frutas1[1]; // maçã Saída:


echo '<br />';
maçã
banana
echo $frutas2[0]; // banana
pêra
echo '<br />';

echo $frutas4['frutaz']; // pêra

26/03/2011 45
Iniciando com PHP
• Operadores
– Aritméticos:
+ => ADIÇÃO
- => SUBTRAÇÃO
* => MULTIPLICAÇÃO
/ => DIVISÃO
- oper => TROCA SINAL
++ oper => PRÉ-INCREMENTO
-- oper => PRÉ-DECREMENTO
oper ++ => PÓS-INCREMENTO

26/03/2011
oper -- => PÓS-DECREMENTO 46
Iniciando com PHP
• Operadores
– Comparativos

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

26/03/2011 47
Iniciando com PHP
• Operadores
– De atribuição

$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;

26/03/2011 48
Iniciando com PHP
• 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'];
26/03/2011 49
Iniciando com PHP
• 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().

$output = `dir`;
echo "<pre>$output</pre>";
26/03/2011 50
Iniciando com PHP
• Operadores
– Lógicos

!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

26/03/2011 51
Iniciando com PHP
• 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.
<?php
$a = "Olá ";
$b = $a . "mundo!"; // agora $b contém "Olá mundo!"
$c = "Olá ";
$c .= "mundo!"; // agora $a contém "Olá mundo!"
echo $a;
26/03/2011 52
Iniciando com PHP
• 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?

<?php
$a = 2;
$b = 4;
$c = 6;
$x = --$c + $b;
$y = $b++ + $a;
$z = $a - $b--;

26/03/2011 53