PHP
Por Jonata [email protected]
Quem são vocês?
Sobre mim...
falconreviews.com
becker.com
PHPHypertext Preprocessor
Um pouco de história...
Antes, tudo era estático!
Criado em 1994Por Ramus Lerdorf
Common Gateway Interface (CGI)Binário escrito em C
Rastreamento de visitasem 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)
• Personal Home Page Tools “PHP Tools”
1994
• Tornou-se público• Forms Interpreter - “FI”• PHP Construction Kit
1995
• PHP 2.0 – PHP/FI
1996
• Deixou de ser BETA
1997
• 60.000 domínios com PHP – 1% da Internet
• PHP 3 – 70.000 domínios
1998
• PHP 4 – Zend Engine
2000
• PHP 5 – Zend Engine 2.0 e• Sólido modelo de OO
2004
• PHP 5.3 – Funções Anônimas e• Namespaces
2009
• PHP 5.4 – Traits
2012
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.”
http://venturebeat.com/2013/05/17/google-app-engine-finally-supports-php-the-language-that-runs-75-of-the-web/
Andi Gutmans - Zend
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 TipadaAssim como Javascript, Ruby e Python
NamespacesPHP >= 5.3
TraitsPHP >= 5.4
ComposerGerenciador de Dependência para PHP
Servidor Web EmbutidoPHP >= 5.4
Ok, chega de teoria...
Vamos praticar!!
Preparar o Ambiente
1º Passo
Use a última versão estávelhttp://www.php.net/downloads.php
Performance entre versões
PHP 5.1.6 PHP 5.2.17 PHP 5.3.14 PHP 5.4.40
1
2
3
4
5
3.9732 4.1048
2.8
2.2511
No WindowsBaixar arquivo ZIP
Descompactar no c:\phpAbrir “Bloco de Notas” e digitar:
C:\php\php –S localhost:8000 –t c:\wwwSalvar 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 LinuxNo console:
$ apt-get update$ apt-get install php55
Inicializar o Servidor WebNo console, acesse a pasta dos scripts php, depois digite:
> php -S localhost:8080
Criar o Script PHP
2º Passo
Bloco de Notas<?php echo ‘Hello World’; ?>
Salvar na pasta “www” como “index.php”
Executar o Script PHP
3º Passo
Navegador WebAcessar:
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³
StringAspas 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"';
<?php
// 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';
StringAspas Simples
<?php
$variavel = 'Legal';
// Outputs: Variáveis funcionam assim: Legal echo “Variaveis funcionam assim: $variavel”;
StringAspas Duplas
Array
<?php
$array = array("foo", "bar", "hello", "world");$array = ["foo", "bar", "hello", "world"]; // PHP >= 5.4
ArraySintaxe:
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ônimasLambda 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 / Requirearquivo1.php
arquivo2.php
IncludeExibe 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
RequireExibe 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!
• 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
Referências
Top Related