SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
Linguagem PHP
    Bruno Cunha
     Paulo Alves


                                Computação – 6º Período
   Conceitos e Paradigmas de Linguagens de Programação
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
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
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
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
Linha de Comando




                   6
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/)
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
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
Sintaxe
Usando a linguagem PHP




                         10
Atribuição de Variável
<?php
$hello = „Hello World‟;
echo $hello;
?>



Saída:
Hello World!
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
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
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
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
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
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
Arrays (Vetores)
   Índice Automático                 Índice Explícito
<?php                           <?php
$foo[] = 'bar'; // [0] => bar   $foo[0] = 'bar'; // [0] => bar
$foo[] = 'baz'; // [1] => baz   $foo[1] = 'baz'; // [1] => baz

                                $foo = array(
$foo = array(
                                         0 => 'bar', // [0] => bar
         'bar', // [0] => bar
                                         1 => 'baz', // [1] => baz
         'baz', // [1] => baz            );
         );                     ?>
?>
                                                                 18
<?php                                      <?php
$tab = array (4=> 1, 2, 3, 9=> 4,5,6,7);   $tab = array (“b”=>1, “a”=2, 3, 4);
echo $tab[0]; // produz erro               echo $tab[“a”]; // imprime 2
echo $tab[4]; // imprime 1                 echo $tab[0]; // imprime 3
echo $tab[5]; // imprime 2                 echo $tab[2]; // produz erro
?>                                         ?>




 <?php
 $tab = array (1, array (2,3));
 echo $tab[1][0]; // imprime 2
 echo $tab[0]; // imprime 1
 echo $tab[0][0]; // produz erro
 ?>
Comparação
•    Equivalência
      <?php
      if (2 == 3) { echo „Não‟; }
      if (3 == '3') { echo „Sim‟; }
      if (2 != 3) { echo „Sim‟; }
      ?>


•   Identidade
      <?php
      if (3 === '3') { echo „Não‟; }
      if (3 === 3) { echo „Sim‟; }
      if (3 !== 4) { echo „Sim‟; }
      ?>
Interpolação em Strings
    Aspas Simples               Aspas Duplas

<?php                      <?php
$x = 2;                    $x = 2;
echo „Comi $x cookies.‟;   echo “Comi $x cookies.”;
// Comi $x cookies.        echo “Comi {$x} cookies. ”;
?>                         // Comi 2 cookies.
                           ?>


                                                         21
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
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
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
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;
     }
     ?>
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
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
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
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
30
Interface com PHP-GTK




                        31
Perguntas?
             32

Contenu connexe

Tendances

Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
Regis Magalhães
 
Mapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORMMapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORM
Fábio Rehm
 

Tendances (20)

Perl Moderno, dia3
Perl Moderno, dia3Perl Moderno, dia3
Perl Moderno, dia3
 
Doctrine2 Seminário PHP
Doctrine2 Seminário PHPDoctrine2 Seminário PHP
Doctrine2 Seminário PHP
 
Perl Moderno, dia5
Perl Moderno, dia5Perl Moderno, dia5
Perl Moderno, dia5
 
Aula5
Aula5Aula5
Aula5
 
Arrays PHP - Criação de sites II
Arrays PHP - Criação de sites IIArrays PHP - Criação de sites II
Arrays PHP - Criação de sites II
 
Perl Moderno, dia4
Perl Moderno, dia4Perl Moderno, dia4
Perl Moderno, dia4
 
Perl Moderno, dia1
Perl Moderno, dia1Perl Moderno, dia1
Perl Moderno, dia1
 
PHP - Arrays
PHP - ArraysPHP - Arrays
PHP - Arrays
 
Php 02 Primeiros Passos
Php 02 Primeiros PassosPhp 02 Primeiros Passos
Php 02 Primeiros Passos
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
PHP MySQL Aula 07
PHP MySQL Aula 07PHP MySQL Aula 07
PHP MySQL Aula 07
 
Shell script
Shell scriptShell script
Shell script
 
Perl Moderno, dia2
Perl Moderno, dia2Perl Moderno, dia2
Perl Moderno, dia2
 
Desenvolvendo Extensões PECL
Desenvolvendo Extensões PECLDesenvolvendo Extensões PECL
Desenvolvendo Extensões PECL
 
Mapeamento Objeto Relacional com PHP - PHP Conference Brasil 2010
Mapeamento Objeto Relacional com PHP - PHP Conference Brasil 2010Mapeamento Objeto Relacional com PHP - PHP Conference Brasil 2010
Mapeamento Objeto Relacional com PHP - PHP Conference Brasil 2010
 
Aula4
Aula4Aula4
Aula4
 
Dependency injection
Dependency injectionDependency injection
Dependency injection
 
Python 02
Python 02Python 02
Python 02
 
Mapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORMMapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORM
 
Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)
 

En vedette

Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010
Maurício Linhares
 
Linguagem PHP para principiantes
Linguagem PHP para principiantesLinguagem PHP para principiantes
Linguagem PHP para principiantes
Marco Pinheiro
 
Socket programming with php
Socket programming with phpSocket programming with php
Socket programming with php
Elizabeth Smith
 
correção Ficha 4,5,6,e 7
correção Ficha 4,5,6,e 7correção Ficha 4,5,6,e 7
correção Ficha 4,5,6,e 7
edlander
 
Programming TCP/IP with Sockets
Programming TCP/IP with SocketsProgramming TCP/IP with Sockets
Programming TCP/IP with Sockets
elliando dias
 

En vedette (17)

Pyhug zmq
Pyhug zmqPyhug zmq
Pyhug zmq
 
Sockets
SocketsSockets
Sockets
 
Network programming
Network programmingNetwork programming
Network programming
 
Aplicações Web Ricas e Acessíveis
Aplicações Web Ricas e AcessíveisAplicações Web Ricas e Acessíveis
Aplicações Web Ricas e Acessíveis
 
Lidando com Erros - Android
Lidando com Erros - AndroidLidando com Erros - Android
Lidando com Erros - Android
 
Aula sockets
Aula socketsAula sockets
Aula sockets
 
Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010
 
Linguagem PHP para principiantes
Linguagem PHP para principiantesLinguagem PHP para principiantes
Linguagem PHP para principiantes
 
Módulo-6-7-ip-com-sockets
Módulo-6-7-ip-com-socketsMódulo-6-7-ip-com-sockets
Módulo-6-7-ip-com-sockets
 
Tecnologia java para sockets
Tecnologia java para socketsTecnologia java para sockets
Tecnologia java para sockets
 
Redes 1 - Sockets em C#
Redes 1 - Sockets em C#Redes 1 - Sockets em C#
Redes 1 - Sockets em C#
 
Socket programming with php
Socket programming with phpSocket programming with php
Socket programming with php
 
correção Ficha 4,5,6,e 7
correção Ficha 4,5,6,e 7correção Ficha 4,5,6,e 7
correção Ficha 4,5,6,e 7
 
Programming TCP/IP with Sockets
Programming TCP/IP with SocketsProgramming TCP/IP with Sockets
Programming TCP/IP with Sockets
 
Basic socket programming
Basic socket programmingBasic socket programming
Basic socket programming
 
Socket programming
Socket programmingSocket programming
Socket programming
 
Socket Programming Tutorial
Socket Programming TutorialSocket Programming Tutorial
Socket Programming Tutorial
 

Similaire à Linguagem PHP

PHP, mas o que é isso ?
PHP, mas o que é isso ?PHP, mas o que é isso ?
PHP, mas o que é isso ?
phpal
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
Regis Magalhães
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01
joaocarlobarros
 
PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX
Sérgio Souza Costa
 
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aulaCurso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Jonata Weber
 
Oficina de Web Design Lecom - PHP e JavaScript
Oficina de Web Design Lecom - PHP e JavaScriptOficina de Web Design Lecom - PHP e JavaScript
Oficina de Web Design Lecom - PHP e JavaScript
Raphael Donaire Albino
 

Similaire à Linguagem PHP (20)

Introdução a php
Introdução a phpIntrodução a php
Introdução a php
 
Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)
 
PHP, mas o que é isso ?
PHP, mas o que é isso ?PHP, mas o que é isso ?
PHP, mas o que é isso ?
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01
 
Introdução PHP + Kohana 3
Introdução PHP + Kohana 3Introdução PHP + Kohana 3
Introdução PHP + Kohana 3
 
PHP(I-Bim).ppt
PHP(I-Bim).pptPHP(I-Bim).ppt
PHP(I-Bim).ppt
 
PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX
 
Módulo de php
Módulo de phpMódulo de php
Módulo de php
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Web
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantes
 
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aulaCurso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
 
A Revolução dos Middlewares
A Revolução dos MiddlewaresA Revolução dos Middlewares
A Revolução dos Middlewares
 
Introdução ao PHP Parte 2
Introdução ao PHP Parte 2Introdução ao PHP Parte 2
Introdução ao PHP Parte 2
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Dev Ext PHP
Dev Ext PHPDev Ext PHP
Dev Ext PHP
 
TDC 2016 - PHP7
TDC 2016 - PHP7TDC 2016 - PHP7
TDC 2016 - PHP7
 
Curso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao Avançado
 
Oficina de Web Design Lecom - PHP e JavaScript
Oficina de Web Design Lecom - PHP e JavaScriptOficina de Web Design Lecom - PHP e JavaScript
Oficina de Web Design Lecom - PHP e JavaScript
 
PHP-CLI in 7 steps - 7Masters PHP
PHP-CLI in 7 steps - 7Masters PHPPHP-CLI in 7 steps - 7Masters PHP
PHP-CLI in 7 steps - 7Masters PHP
 

Dernier

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Dernier (6)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Linguagem PHP

  • 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
  • 11. Atribuição de Variável <?php $hello = „Hello World‟; echo $hello; ?> Saída: Hello World!
  • 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
  • 18. Arrays (Vetores) Índice Automático Índice Explícito <?php <?php $foo[] = 'bar'; // [0] => bar $foo[0] = 'bar'; // [0] => bar $foo[] = 'baz'; // [1] => baz $foo[1] = 'baz'; // [1] => baz $foo = array( $foo = array( 0 => 'bar', // [0] => bar 'bar', // [0] => bar 1 => 'baz', // [1] => baz 'baz', // [1] => baz ); ); ?> ?> 18
  • 19. <?php <?php $tab = array (4=> 1, 2, 3, 9=> 4,5,6,7); $tab = array (“b”=>1, “a”=2, 3, 4); echo $tab[0]; // produz erro echo $tab[“a”]; // imprime 2 echo $tab[4]; // imprime 1 echo $tab[0]; // imprime 3 echo $tab[5]; // imprime 2 echo $tab[2]; // produz erro ?> ?> <?php $tab = array (1, array (2,3)); echo $tab[1][0]; // imprime 2 echo $tab[0]; // imprime 1 echo $tab[0][0]; // produz erro ?>
  • 20. Comparação • Equivalência <?php if (2 == 3) { echo „Não‟; } if (3 == '3') { echo „Sim‟; } if (2 != 3) { echo „Sim‟; } ?> • Identidade <?php if (3 === '3') { echo „Não‟; } if (3 === 3) { echo „Sim‟; } if (3 !== 4) { echo „Sim‟; } ?>
  • 21. Interpolação em Strings Aspas Simples Aspas Duplas <?php <?php $x = 2; $x = 2; echo „Comi $x cookies.‟; echo “Comi $x cookies.”; // Comi $x cookies. echo “Comi {$x} cookies. ”; ?> // Comi 2 cookies. ?> 21
  • 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
  • 30. 30