linguagem php

32
Linguagem PHP Bruno Cunha Paulo Alves Computação 6º Período Conceitos e Paradigmas de Linguagens de Programação

Upload: bruno-cunha

Post on 29-Jun-2015

2.647 views

Category:

Technology


2 download

DESCRIPTION

Apresentação feita para a materia de Conceitos e Paradigmas em Linguagens de Programação, onde a linguagem escolhida foi o PHP.

TRANSCRIPT

Page 1: Linguagem PHP

Linguagem PHP Bruno Cunha

Paulo Alves

Computação – 6º Período

Conceitos e Paradigmas de Linguagens de Programação

Page 2: Linguagem PHP

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

Page 3: Linguagem PHP

O que é PHP?

O Portabilidade

O Sistemas Operacionais

O Windows

O AS/400

O Mac OS X

O Novell NetWare

O OS/2

O Não disponível para Linux

O Compilar o código-fonte ou

O Pegar o interpretador compilado no site da distro

3

O RISC OS

O SGI IRIX 6.5.x

O Solaris (SPARC, INTEL)

O Solaris OpenCSW packages

O Redhat/CentOS Binaries

Page 4: Linguagem PHP

Como Funciona o PHP?

4

Cliente Servidor

Requisição

Servidor Web Documento HTML

Arquivo PHP

Interpretador PHP

Base de Dados Serviço de E-Mail

...

Interação

Page 5: Linguagem PHP

Como Funciona o PHP?

5

Cliente Servidor

Requisição

Servidor Web Documento HTML

Arquivo PHP

Interpretador PHP

Base de Dados Serviço de E-Mail

...

Interação

Page 6: Linguagem PHP

Linha de Comando

6

Page 7: Linguagem PHP

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/)

Page 8: Linguagem PHP

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

Page 9: Linguagem PHP

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

Page 10: Linguagem PHP

Sintaxe Usando a linguagem PHP

10

Page 11: Linguagem PHP

Atribuição de Variável

<?php

$hello = „Hello World‟;

echo $hello;

?>

Saída:

Hello World!

Page 12: Linguagem PHP

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

Page 13: Linguagem PHP

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

Page 14: Linguagem PHP

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

Page 15: Linguagem PHP

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

Page 16: Linguagem PHP

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

Page 17: Linguagem PHP

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

Page 18: Linguagem PHP

Arrays (Vetores)

Índice Automático Índice Explícito

18

<?php

$foo[] = 'bar'; // [0] => bar

$foo[] = 'baz'; // [1] => baz

$foo = array(

'bar', // [0] => bar

'baz', // [1] => baz

);

?>

<?php

$foo[0] = 'bar'; // [0] => bar

$foo[1] = 'baz'; // [1] => baz

$foo = array(

0 => 'bar', // [0] => bar

1 => 'baz', // [1] => baz

);

?>

Page 19: Linguagem PHP

<?php

$tab = array (4=> 1, 2, 3, 9=> 4,5,6,7); echo $tab[0]; // produz erro echo $tab[4]; // imprime 1

echo $tab[5]; // imprime 2 ?>

<?php

$tab = array (“b”=>1, “a”=2, 3, 4); echo $tab[“a”]; // imprime 2 echo $tab[0]; // imprime 3

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 ?>

Page 20: Linguagem PHP

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‟; }

?>

Page 21: Linguagem PHP

Interpolação em Strings

Aspas Simples Aspas Duplas

21

<?php

$x = 2;

echo „Comi $x cookies.‟;

// Comi $x cookies.

?>

<?php

$x = 2;

echo “Comi $x cookies.”;

echo “Comi {$x} cookies. ”;

// Comi 2 cookies.

?>

Page 22: Linguagem PHP

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

Page 23: Linguagem PHP

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

Page 24: Linguagem PHP

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(); ?>

24

Uso de seta “->” para acessar

propriedades e métodos

Todo método/função é

declarado com “function”

Operador “::” para acesso a

métodos ou propriedades estáticas e constantes de uma classe.

Page 25: Linguagem PHP

O Passagem por Referência

<?php

function soma ($n)

{ $soma=0;

for ($i=1; $i <= $n; $i++) $soma += $i;

return $soma;

}

?>

<?php

function soma (&$n)

{ $soma=0;

for ($i=1; $i <= $n; $i++) $soma += $i;

return $soma;

}

?>

O Passagem por Valor

<?php

function gostoDe ($bebida, $outra=„leite‟)

{

return “Gosto de {$bebida} com {$outra}.”;

}

echo gostoDe(„café‟);

// Gosto de café com leite.

echo gostoDe(„vodka‟, „sprite‟);

// Gosto de vodka com sprite.

?>

O Passagem por Omissão

Page 26: Linguagem PHP

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

Page 27: Linguagem PHP

Bancos de Dados Suportados

27

O Adabas D

O dBase

O Empress

O FilePro (read-only)

O Hyperwave

O IBM DB2

O Informix

O Ingres

O InterBase

O FrontBase

O mSQL

O Direct MS-SQL

O MySQL

O ODBC

O Oracle (OCI7 and OCI8)

O Ovrimos

O PostgreSQL

O SQLite

O Solid

O Sybase

O Velocis

O Unix dbm

Page 28: Linguagem PHP

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

Page 29: Linguagem PHP

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

Page 30: Linguagem PHP

30

Page 31: Linguagem PHP

Interface com PHP-GTK

31

Page 32: Linguagem PHP

Perguntas? 32