O PHP é uma linguagem de script interpretada e executada em tempo de execução, normalmente utilizada para criar aplicações web. Ela é portável, de tipagem dinâmica e suporta programação procedural e orientada a objetos. O PHP é amplamente usado por sites como Wikipedia, Facebook e WordPress.
1. Linguagem PHP
Bruno Cunha
Paulo Alves
Computação – 6º Período
Conceitos e Paradigmas de Linguagens de Programação
2. O que é PHP?
O PHP: Hypertext Preprocessor
O Linguagem de Scripting fracamente tipada
O Interpretada em tempo de execução
O Procedural e Orientada a Objetos
O Normalmente utilizada para criar
aplicações web
2
3. O que é PHP?
O Portabilidade
O Sistemas Operacionais
O Windows O RISC OS
O AS/400 O SGI IRIX 6.5.x
O Mac OS X O Solaris (SPARC, INTEL)
O Novell NetWare O Solaris OpenCSW packages
O OS/2 O Redhat/CentOS Binaries
O Não disponível para Linux
O Compilar o código-fonte ou
O Pegar o interpretador compilado no site da distro
3
4. Como Funciona o PHP?
Cliente Servidor
...
Arquivo PHP Base de Dados Serviço de E-Mail
Requisição
Interação
Documento HTML
Servidor Web Interpretador PHP
4
5. Como Funciona o PHP?
Cliente Servidor
...
Arquivo PHP Base de Dados Serviço de E-Mail
Requisição
Interação
Documento HTML
Servidor Web Interpretador PHP
5
7. Quem usa PHP?
O Wikipedia
O Yahoo!
O Facebook
O Oracle
O Twitter
O Wordpress
O Netbeans
O Eclipse
O + outros 20 milhões de domínios
7
Fonte: Netcraft (http://www.netcraft.com/Survey/)
8. Breve história do PHP
O Personal Home Page / Forms Interpreter
O Criada por Rasmus Lerdorf
O PHP/FI 1.0 liberada em 1995
O PHP/FI 2.0 liberada em 1997
O PHP: Hypertext Preprocessor
O Criada por Andi Gutmans e Zeev Suraski
O PHP 3.0 liberada em 1998
O PHP 4.4 liberada em 2005
8
9. Breve história do PHP
O PHP: Hypertext Preprocessor 5
O Novo modelo de objetos
O PHP 5.0 liberada em 2004
O PHP 5.3 liberada em 2009
O PHP: Hypertext Preprocessor 5.3.3
O Versão Atual
O Liberada em Julho de 2010
9
12. Tipos de Dados
O Primitivos
O Valores lógicos
O TRUE, FALSE
O Números inteiros
O 2
O 0x12
O Números com ponto flutuante
O 4.5
O 7E – 10
O Cadeias de caracteres
O “Olá, $nome”
O „Olá, $nome‟
12
13. Tipos de Dados
O Compostos
O Arrays
O Vetor multidimensional abstrato, através do
qual se pode construir listas, filas, pilhas,
dicionários e outras construções similares
O Objetos
O Variável de um tipo de dados criado pelo
usuário que pode conter múltiplos atributos,
definida através de um método construtor.
13
14. Tipos de Dados
O Especiais
O Resource
O existente a partir da versão 4 da linguagem, usada
para referenciar recursos externos: bases de dados,
arquivos, sockets...
O Null
O objeto nulo, atribuido a toda variável apagada, não
carregada ou após uma atribuição da constante null
O Mixed
O usado em declarações de protótipos, determinando
que mais de um tipo de retorno é esperado ou mais
de um tipo de parâmetro pode ser usado
14
15. Manipulação de Tipos
O Tipagem dinâmica
O Tipo não é declarado
O Fracamente tipada
O Conversão de tipos implícita
<?php
$foo = "0"; // $foo é string
$foo += 2; // $foo é agora um inteiro
$foo = $foo + 1.3; // $foo é agora um float
$foo = 5 + "10 pequenos porcos"; // $foo é inteiro
$foo = 5 + "10 minúsculos porcos"; // $foo é inteiro
?>
15
16. Identificadores
O Variáveis
O Sempre antecedido pelo símbolo “$”.
O Constantes
O São declaradas pela função “define” ou palavra
reservada “const”.
O São referenciadas sem o “$”.
<?php
define(“PI”, 3.1415); // normal
const RAIO = 35; // > PHP 5.3
$circunferencia = 2 * PI * RAIO;
?>
16
17. Variáveis Variáveis
O Variáveis com capacidade para guardar o
nome de outras variáveis.
<?php
$a = „ola‟;
$$a = „ mundo‟;
//$$a é o mesmo que escrever $ola.
echo ($a.$ola); // olamundo
echo ($a.$$a); // olamundo
?>
17
22. Estruturas de controle
O Condicionais
O if, else, ifelse / if else, switch
O Iteradores
O while, for, do while e foreach
O Foreach
<?php
$lista = array(0, 1, 2, 3, 4);
foreach ($lista as $item) {echo $item;}
foreach ($lista as $chave => $valor)
{
echo “Item {$chave}: {$valor}”;
}
?>
22
23. Classes e Objetos
<?php
class Foo
{
public static $meu_estatico = 'foo';
private $nao_estatica = 'bar';
public static function umMetodoEstatico()
{
echo $this->nao_estatica;
}
public function valorEstatico()
{
return self::$meu_estatico;
}
}
Foo::umMetodoEstatico();
$objeto = new Foo();
echo $objeto->valorEstatico();
?>
23
24. Classes e Objetos
<?php
class Foo
{ Todo método/função é
public static $meu_estatico = 'foo'; declarado com “function”
private $nao_estatica = 'bar';
Uso de seta “->” para acessar
public static function umMetodoEstatico()
propriedades e métodos
{
echo $this->nao_estatica;
} Operador “::” para acesso a
public function valorEstatico()
métodos ou propriedades
{
return self::$meu_estatico; estáticas e constantes de
} uma classe.
}
Foo::umMetodoEstatico();
$objeto = new Foo();
echo $objeto->valorEstatico();
?>
24
25. O Passagem por Valor O Passagem por Omissão
<?php <?php
function soma ($n)
{ function gostoDe ($bebida, $outra=„leite‟)
$soma=0; {
for ($i=1; $i <= $n; $i++)
$soma += $i; return “Gosto de {$bebida} com
return $soma; {$outra}.”;
}
?>
}
echo gostoDe(„café‟);
O Passagem por Referência // Gosto de café com leite.
echo gostoDe(„vodka‟, „sprite‟);
<?php
function soma (&$n)
// Gosto de vodka com sprite.
{ ?>
$soma=0;
for ($i=1; $i <= $n; $i++)
$soma += $i;
return $soma;
}
?>
26. Extensões
O Filesystem
O $arquivo = file_get_contents(„arquivo.txt‟);
O file_ put_ contents(„arquivo.txt‟, $dados);
O Processamento de Imagem (GD)
O E-Mail (Mail)
O Data e Hora
O Manipulação de Arrays
O Expressão Regular (POSIX Extended)
26
27. Bancos de Dados Suportados
O Adabas D O Direct MS-SQL
O dBase O MySQL
O Empress O ODBC
O FilePro (read-only) O Oracle (OCI7 and OCI8)
O Hyperwave O Ovrimos
O IBM DB2 O PostgreSQL
O Informix O SQLite
O Ingres O Solid
O InterBase O Sybase
O FrontBase O Velocis
O mSQL O Unix dbm
27
28. Projetos
O PHP-GTK
O Criação de interfaces gráficas para o PHP
O Roadsend PHP
O Compilador de PHP para binário
O Phalanger
O Compilador de PHP para Byte-Codes
O Quercus
O Permite executar PHP em Java
O HipHop
O Tradutor de código-fonte PHP para C++
28
29. Observações Finais
O PHP não suporta Threads.
O Programador não é obrigado a tratar
excessões.
O PHP não gera somente HTML, é possível
criar também PDF, imagens, animações
em Flash, XML, etc.
O PHP tem suporte a comunicação com a
maioria dos protocolos: POP3, COM,
NNTP, IMAP, SNMP e incontáveis outros.
29