SlideShare uma empresa Scribd logo
1 de 73
PHP
Por Jonata Weber
jonataa@gmail.com
Quem são vocês?
Sobre mim...
falconreviews.com
becker.com
PHP
Hypertext Preprocessor
Um pouco de história...
Antes, tudo era estático!
Criado em 1994
Por Ramus Lerdorf

Common Gateway
Interface (CGI)
Binário escrito em C

Rastreamento de
visitas
em seu currículo on-line
Rasmus Lerdorf
É um programador canadiano-dinamarquês e o autor da primeira
versão da linguagem de programação PHP. (Wikipédia)
1994
•

Personal Home Page Tools
“PHP Tools”

1995
• Tornou-se público
• Forms Interpreter - “FI”
• PHP Construction Kit

1996
• PHP 2.0 – PHP/FI
1997
•

Deixou de ser BETA

1998
• 60.000 domínios com PHP – 1% da
Internet
• PHP 3 – 70.000 domínios

2000
• PHP 4 – Zend Engine
2004
•
•

PHP 5 – Zend Engine 2.0 e
Sólido modelo de OO

2009
•
•

PHP 5.3 – Funções Anônimas e
Namespaces

2012
• PHP 5.4 – Traits
Ok, chega de história...
Vamos falar do HOJE!
2013
“I love Google’s stat,
that 75 percent of the
web runs PHP. No one
knows the web better
than Google.”
Andi Gutmans - Zend
http://venturebeat.com/2013/05/17/google-app-engine-finally-supports-php-the-language-that-runs-75-of-the-web/
Google App Engine finally
supports PHP
Porque PHP?
PHP é Open Source
Executado no Servidor
Programação Funcional
Suporte Completo a
Programação OO
PHP usa uma mistura de
interpretação e compilação
Fracamente Tipada
Assim como Javascript, Ruby e Python
Namespaces
PHP >= 5.3
Traits
PHP >= 5.4
Composer
Gerenciador de Dependência para PHP
Servidor Web Embutido
PHP >= 5.4
Ok, chega de teoria...
Vamos praticar!!
1º Passo

Preparar o Ambiente
Use a última versão estável
http://www.php.net/downloads.php
Performance entre versões
5

4

4.1048

4
4
2.8

3

2.2511

3
2
2
1
1
0
PHP 5.1.6

PHP 5.2.17

PHP 5.3.14

PHP 5.4.4
No Windows
Baixar arquivo ZIP
Descompactar no c:php
Abrir “Bloco de Notas” e digitar:
C:phpphp –S localhost:8000 –t c:www
Salvar arquivo na “Área de Trabalho” com o nome “servidor.bat”
(Não esquecer de alterar para todos os arquivos ao salvar no bloco de notas)

No Linux
No console:
$ apt-get update
$ apt-get install php55
Inicializar o Servidor Web
No console, acesse a pasta dos scripts php, depois digite:
> php -S localhost:8080
2º Passo

Criar o Script PHP
Bloco de Notas
<?php echo „Hello World‟; ?>
Salvar na pasta “www” como “index.php”
3º Passo

Executar o Script PHP
Navegador Web
Acessar:
http://localhost:8000/index.php
PHP
Básico
Tipos Primitivos
•
•
•
•
•
•
•

Boolean
Integer
Float
String
Array
NULL
Object
Boolean
<?php
$variavel = true;
$variavel = false;
$variavel = (50 == '50'); // true
$variavel = (50 != '50'); // false
$variavel = (50 === '50'); // false
$variavel = (50 !== '50'); // true
Integer e Float
<?php
$variavel = 50; // decimal
$variavel = -123; // número negativo
$variavel = 0123; // octal
$variavel = 0x1A; // número hexadecimal (26 decimal)
$variavel = 1.234; // ponto flutuante
$variavel = 1.2e3; // 1,2³
String
Aspas Simples
<?php
echo ‘essa é uma simples string';
echo ‘Além disso, você pode embarcar novas linhas
nas strings, esse é um caminho
legal de fazer';
// Outputs: Arnold once said: "I'll be back"
echo 'Arnold once said: "I'll be back"';
String
<?php

Aspas Simples

// Outputs: Você deletou C:*.*?
echo ‘Você deletou C:*.*?';
// Outputs: Você deletou C:*.*?
echo ‘Você deletou C:*.*?';
// Outputs: Isso não vai criar: n uma nova linha
echo ‘Isso não vai criar: n uma nova linha';
// Outputs: Variáveis não funcionam $expand $either assim
echo ‘Variáveis não funcionam $expand $either assim';
String
Aspas Duplas
<?php

$variavel = 'Legal';
// Outputs: Variáveis funcionam assim: Legal
echo “Variaveis funcionam assim: $variavel”;
Array
<?php
$array = array("foo", "bar", "hello", "world");
$array = ["foo", "bar", "hello", "world"]; // PHP >= 5.4
Array
Sintaxe:
array(
key => value,
key2 => value2,
key3 => value3,
...
)

<?php
$variavel = array(
"chave1" => "valor1",
"chave2" => "valor2",
);
// as of PHP 5.4
$variavel = [
"chave1" => "valor1",
"chave2" => "valor2",
];
Array
<?php
$array = array(
"foo" => "bar",
"bar" => "foo",
100 => -100,
-100 => 100,
);
var_dump($array);

Saída:
array(4) {
["foo"]=>
string(3) "bar"
["bar"]=>
string(3) "foo"
[100]=>
int(-100)
[-100]=>
int(100)
}
Array
<?php
$variavel
= array(5 => 1, 12 => 2);
$variavel[] = 56 // Isso é o mesmo que $variavel[13] = 56;
$variavel["x"] = 42; // Isso adiciona um novo elemento
// com a chave "x"

unset($variavel[5]); // Isso remove o elemento do array
unset($variavel); // Isso delete o array
NULL
<?php

$variavel = NULL;
$variavel = Null;
$variavel = null;
Constantes
Funções
<?php
function helloWorld() {
echo 'Hello World';
}
helloWorld(); // Hello World

function maiusculo($texto) {
return strtoupper($texto);
}
echo maiusculo('jonata weber'); // JONATA WEBER
Funções Anônimas
Lambda e Closure
Operadores Aritméticos
Operadores Lógicos
Operadores de String
Operadores de Atribuição
Incremento / Decremento
Exercício 1
Faça um script em PHP que leia três notas de um
aluno e calcule a média aritmética deste aluno.
•
•

Deverá ser uma função que receba três parâmetros float (ou um
array)
A função deverá retornar a média aritmética do aluno em float
Exercício 2
Faça um script em PHP que converta HORAS em
SEGUNDOS.
•
•
•

Deverá ser uma função que recebe um número inteiro em horas, ex:
20
A função deverá retornar um inteiro em segundos, ex: 72000.
O script deverá imprimir o resultado no seguinte formato:
• 20 horas têm 72000 segundos
IF / ELSEIF / ELSE
Operador Ternário
WHILE / DO-WHILE
FOR / FOREACH
FOREACH
SWITCH
Include / Require
arquivo1.php

arquivo2.php
Include
Exibe um “Warning” e não interrompe a
execução
Warning: include(arquivo3.php): failed to open stream: No such file or directory in
/Users/jweber/dev/projects/php/arquivo2.php on line 3
Warning: include(): Failed opening 'arquivo3.php' for inclusion
(include_path='.:') in /Users/jweber/dev/projects/php/arquivo2.php on line 3
Fatal error: Call to undefined function dobrar() in
/Users/jweber/dev/projects/php/arquivo2.php on line 5
Require
Exibe um “Fatal Error” e interrompe a execução
Warning: require(arquivo3.php): failed to open stream: No such file or directory in
/Users/jweber/dev/projects/php/arquivo2.php on line 3
Fatal error: require(): Failed opening required 'arquivo3.php' (include_path='.:') in
/Users/jweber/dev/projects/php/arquivo2.php on line 3
Prática!
FizzBuzz
Neste problema, você deverá exibir uma lista de 1 a
100, um em cada linha, com as seguintes
exceções:
•

•
•

Números divisíveis por 3 deve aparecer como 'Fizz' ao invés do
número;
Números divisíveis por 5 devem aparecer como 'Buzz' ao invés do
número;
Números divisíveis por 3 e 5 devem aparecer como 'FizzBuzz' ao
invés do número‟.
Prática!
Referências
•
•
•
•
•
•

Site oficial do PHP – http://php.net
PHP The Right Way - http://www.phptherightway.com/
Wikipédia - http://pt.wikipedia.org
TuxRadar - http://www.tuxradar.com/practicalphp
Servidores da Web - http://informatica.hsw.uol.com.br/servidores-da-web.htm
http://www.lornajane.net/posts/2012/php-5-4-benchmarks

Mais conteúdo relacionado

Mais procurados

JavaScript for Beginners
JavaScript for BeginnersJavaScript for Beginners
JavaScript for BeginnersSAPO Sessions
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Emerson Macedo
 
Debugging tips and tricks
Debugging tips and tricksDebugging tips and tricks
Debugging tips and tricksTales Andrade
 
Usando POP com Programação Funcional
Usando POP com Programação FuncionalUsando POP com Programação Funcional
Usando POP com Programação FuncionalTales Andrade
 
Como Construir um Compilador cap-1
Como Construir um Compilador cap-1Como Construir um Compilador cap-1
Como Construir um Compilador cap-1Maellson Marques
 
Desenvolvimento Rápido de Programas Linha de Comando
Desenvolvimento Rápido de Programas Linha de ComandoDesenvolvimento Rápido de Programas Linha de Comando
Desenvolvimento Rápido de Programas Linha de Comandogarux
 
Ruby and Rails intro
Ruby and Rails introRuby and Rails intro
Ruby and Rails introNuno Silva
 
JavaScript - Expressões Regulares
JavaScript - Expressões RegularesJavaScript - Expressões Regulares
JavaScript - Expressões RegularesRodrigo Branas
 
Criando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoCriando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoronaldoferraz
 
Como Construir um compilador-cap 2
Como Construir um compilador-cap 2Como Construir um compilador-cap 2
Como Construir um compilador-cap 2Maellson Marques
 
Curso avançado de c++ em portugues
Curso avançado de c++ em portuguesCurso avançado de c++ em portugues
Curso avançado de c++ em portuguesLaura
 
LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09Carlos Santos
 
Ruby e Erlang de mãos dadas
Ruby e Erlang de mãos dadasRuby e Erlang de mãos dadas
Ruby e Erlang de mãos dadasÉverton Ribeiro
 

Mais procurados (20)

JavaScript for Beginners
JavaScript for BeginnersJavaScript for Beginners
JavaScript for Beginners
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011
 
Debugging tips and tricks
Debugging tips and tricksDebugging tips and tricks
Debugging tips and tricks
 
Usando POP com Programação Funcional
Usando POP com Programação FuncionalUsando POP com Programação Funcional
Usando POP com Programação Funcional
 
Palestra Ruby
Palestra RubyPalestra Ruby
Palestra Ruby
 
Como Construir um Compilador cap-1
Como Construir um Compilador cap-1Como Construir um Compilador cap-1
Como Construir um Compilador cap-1
 
Desenvolvimento Rápido de Programas Linha de Comando
Desenvolvimento Rápido de Programas Linha de ComandoDesenvolvimento Rápido de Programas Linha de Comando
Desenvolvimento Rápido de Programas Linha de Comando
 
Php
PhpPhp
Php
 
Ruby and Rails intro
Ruby and Rails introRuby and Rails intro
Ruby and Rails intro
 
JavaScript - Expressões Regulares
JavaScript - Expressões RegularesJavaScript - Expressões Regulares
JavaScript - Expressões Regulares
 
2ª aula php
2ª aula php2ª aula php
2ª aula php
 
Criando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoCriando sua própria linguagem de programação
Criando sua própria linguagem de programação
 
Como Construir um compilador-cap 2
Como Construir um compilador-cap 2Como Construir um compilador-cap 2
Como Construir um compilador-cap 2
 
5423 c ou c++
5423 c ou c++5423 c ou c++
5423 c ou c++
 
Curso avançado de c++ em portugues
Curso avançado de c++ em portuguesCurso avançado de c++ em portugues
Curso avançado de c++ em portugues
 
LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09
 
PHP 5.3 - Funções
PHP 5.3 - FunçõesPHP 5.3 - Funções
PHP 5.3 - Funções
 
Ruby e Erlang de mãos dadas
Ruby e Erlang de mãos dadasRuby e Erlang de mãos dadas
Ruby e Erlang de mãos dadas
 
PHP - Funções
PHP - FunçõesPHP - Funções
PHP - Funções
 
Ruby learning
Ruby learningRuby learning
Ruby learning
 

Destaque

Curso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – FrameworksCurso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – FrameworksJonata Weber
 
Curso PHP UNIFACS 2014.1 – Databases & Sessions
Curso PHP UNIFACS 2014.1 – Databases & SessionsCurso PHP UNIFACS 2014.1 – Databases & Sessions
Curso PHP UNIFACS 2014.1 – Databases & SessionsJonata Weber
 
Curso PHP - 2a. Aula (2013.2)
Curso PHP - 2a. Aula (2013.2)Curso PHP - 2a. Aula (2013.2)
Curso PHP - 2a. Aula (2013.2)Jonata Weber
 
Aprender CSS (UFCD0154) v2
Aprender CSS (UFCD0154) v2Aprender CSS (UFCD0154) v2
Aprender CSS (UFCD0154) v2Afonso Gomes
 
PHP Orientado a Objetos - 1a Parte
PHP Orientado a Objetos - 1a PartePHP Orientado a Objetos - 1a Parte
PHP Orientado a Objetos - 1a ParteJonata Weber
 
Programando sua carreira
Programando sua carreiraProgramando sua carreira
Programando sua carreiraJonata Weber
 
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
 
HTML&CSS 3 - Introduction to CSS
HTML&CSS 3 - Introduction to CSSHTML&CSS 3 - Introduction to CSS
HTML&CSS 3 - Introduction to CSSDinis Correia
 
A practical guide to building websites with HTML5 & CSS3
A practical guide to building websites with HTML5 & CSS3A practical guide to building websites with HTML5 & CSS3
A practical guide to building websites with HTML5 & CSS3Darren Wood
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPFlavio Souza
 
HTML&CSS 6 - Advanced CSS
HTML&CSS 6 - Advanced CSSHTML&CSS 6 - Advanced CSS
HTML&CSS 6 - Advanced CSSDinis Correia
 

Destaque (20)

Aula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQLAula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQL
 
Curso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – FrameworksCurso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – Frameworks
 
Curso PHP UNIFACS 2014.1 – Databases & Sessions
Curso PHP UNIFACS 2014.1 – Databases & SessionsCurso PHP UNIFACS 2014.1 – Databases & Sessions
Curso PHP UNIFACS 2014.1 – Databases & Sessions
 
Curso PHP - 2a. Aula (2013.2)
Curso PHP - 2a. Aula (2013.2)Curso PHP - 2a. Aula (2013.2)
Curso PHP - 2a. Aula (2013.2)
 
CSS - Posicionamento
CSS - PosicionamentoCSS - Posicionamento
CSS - Posicionamento
 
Aprender CSS (UFCD0154) v2
Aprender CSS (UFCD0154) v2Aprender CSS (UFCD0154) v2
Aprender CSS (UFCD0154) v2
 
Introdução ao CSS
Introdução ao CSSIntrodução ao CSS
Introdução ao CSS
 
Html Aula 1 - parte 2
Html Aula 1 - parte 2Html Aula 1 - parte 2
Html Aula 1 - parte 2
 
PHP Orientado a Objetos - 1a Parte
PHP Orientado a Objetos - 1a PartePHP Orientado a Objetos - 1a Parte
PHP Orientado a Objetos - 1a Parte
 
Programando sua carreira
Programando sua carreiraProgramando sua carreira
Programando sua carreira
 
Aula 02 - Curso PHP e MySQL
Aula 02 - Curso PHP e MySQLAula 02 - Curso PHP e MySQL
Aula 02 - Curso PHP e MySQL
 
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
 
HTML&CSS 3 - Introduction to CSS
HTML&CSS 3 - Introduction to CSSHTML&CSS 3 - Introduction to CSS
HTML&CSS 3 - Introduction to CSS
 
A practical guide to building websites with HTML5 & CSS3
A practical guide to building websites with HTML5 & CSS3A practical guide to building websites with HTML5 & CSS3
A practical guide to building websites with HTML5 & CSS3
 
Apostila html / css
Apostila html / css Apostila html / css
Apostila html / css
 
Html Exercicio
Html ExercicioHtml Exercicio
Html Exercicio
 
Resumo html 2012 exercícios 01 21
Resumo html 2012   exercícios 01 21Resumo html 2012   exercícios 01 21
Resumo html 2012 exercícios 01 21
 
Testes de css
Testes de cssTestes de css
Testes de css
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHP
 
HTML&CSS 6 - Advanced CSS
HTML&CSS 6 - Advanced CSSHTML&CSS 6 - Advanced CSS
HTML&CSS 6 - Advanced CSS
 

Semelhante a Introdução à linguagem PHP

Semelhante a Introdução à linguagem PHP (20)

Mini Curso de PHP
Mini Curso de PHPMini Curso de PHP
Mini Curso de PHP
 
PHP - Introdução
PHP - IntroduçãoPHP - Introdução
PHP - Introdução
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHP
 
PHP(I-Bim).ppt
PHP(I-Bim).pptPHP(I-Bim).ppt
PHP(I-Bim).ppt
 
Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)
 
Módulo de php
Módulo de phpMódulo de php
Módulo de php
 
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHPLabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
 
Introdução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites IIIntrodução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites II
 
PHP 5.3 - Introdução
PHP 5.3 - IntroduçãoPHP 5.3 - Introdução
PHP 5.3 - Introdução
 
PHP GERAL
PHP GERALPHP GERAL
PHP GERAL
 
PHP, Presente e Futuro
PHP, Presente e FuturoPHP, Presente e Futuro
PHP, Presente e Futuro
 
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
 
Pho Aula 02
Pho Aula 02Pho Aula 02
Pho Aula 02
 
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
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
M5 php rc
M5 php rcM5 php rc
M5 php rc
 
Curso de php do básico ao avançado
Curso de php do básico ao avançadoCurso de php do básico ao avançado
Curso de php do básico ao avançado
 
PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7
 
Zephir
ZephirZephir
Zephir
 
Linguagem PHP
Linguagem PHPLinguagem PHP
Linguagem PHP
 

Introdução à linguagem PHP