SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Perl Moderno, dia3
Perl Moderno, dia3Perl Moderno, dia3
Perl Moderno, dia3garux
 
Perl Moderno, dia5
Perl Moderno, dia5Perl Moderno, dia5
Perl Moderno, dia5garux
 
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 IIinfo_cimol
 
Perl Moderno, dia4
Perl Moderno, dia4Perl Moderno, dia4
Perl Moderno, dia4garux
 
Perl Moderno, dia1
Perl Moderno, dia1Perl Moderno, dia1
Perl Moderno, dia1garux
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosRegis Magalhães
 
Perl Moderno, dia2
Perl Moderno, dia2Perl Moderno, dia2
Perl Moderno, dia2garux
 
Desenvolvendo Extensões PECL
Desenvolvendo Extensões PECLDesenvolvendo Extensões PECL
Desenvolvendo Extensões PECLW3P Projetos Web
 
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 2010Flávio Lisboa
 
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 ORMFábio Rehm
 
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)Hugo Maia Vieira
 

Was ist angesagt? (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)
 

Andere mochten auch (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
 

Ähnlich wie Linguagem 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)Jonata Weber
 
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-passosRegis Magalhães
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01joaocarlobarros
 
Introdução PHP + Kohana 3
Introdução PHP + Kohana 3Introdução PHP + Kohana 3
Introdução PHP + Kohana 3Adir Kuhn
 
PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX Sérgio Souza Costa
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Webdiogoa21
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesAlmir Mendes
 
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ª aulaJonata Weber
 
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 ...tdc-globalcode
 
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çadoLuiz Junior
 
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 JavaScriptRaphael Donaire Albino
 
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 PHPiMasters
 

Ähnlich wie 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
 

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