simcit 2013 - mini-curso php
DESCRIPTION
SIMCIT 2013 - UNIFACS Campus FeiraTRANSCRIPT
![Page 2: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/2.jpg)
Quem são vocês?
![Page 3: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/3.jpg)
Sobre mim...
![Page 4: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/4.jpg)
falconreviews.com
![Page 5: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/5.jpg)
becker.com
![Page 6: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/6.jpg)
PHPHypertext Preprocessor
![Page 7: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/7.jpg)
Um pouco de história...
![Page 8: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/8.jpg)
Antes, tudo era estático!
![Page 9: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/9.jpg)
Criado em 1994Por Ramus Lerdorf
Common Gateway Interface (CGI)Binário escrito em C
Rastreamento de visitasem seu currículo on-line
![Page 10: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/10.jpg)
Rasmus LerdorfÉ um programador canadiano-dinamarquês e o autor da primeira
versão da linguagem de programação PHP. (Wikipédia)
![Page 11: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/11.jpg)
• Personal Home Page Tools “PHP Tools”
1994
• Tornou-se público• Forms Interpreter - “FI”• PHP Construction Kit
1995
• PHP 2.0 – PHP/FI
1996
![Page 12: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/12.jpg)
• 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
![Page 13: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/13.jpg)
• 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
![Page 14: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/14.jpg)
Ok, chega de história... Vamos falar do HOJE!
![Page 15: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/15.jpg)
2013
![Page 16: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/16.jpg)
“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
![Page 17: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/17.jpg)
Google App Engine finally supports PHP
![Page 18: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/18.jpg)
Porque PHP?
![Page 19: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/19.jpg)
PHP é Open Source
![Page 20: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/20.jpg)
Executado no Servidor
![Page 21: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/21.jpg)
Programação Funcional
![Page 22: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/22.jpg)
Suporte Completo a Programação OO
![Page 23: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/23.jpg)
PHP usa uma mistura de interpretação e compilação
![Page 24: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/24.jpg)
Fracamente TipadaAssim como Javascript, Ruby e Python
![Page 25: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/25.jpg)
NamespacesPHP >= 5.3
![Page 26: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/26.jpg)
TraitsPHP >= 5.4
![Page 27: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/27.jpg)
ComposerGerenciador de Dependência para PHP
![Page 28: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/28.jpg)
Servidor Web EmbutidoPHP >= 5.4
![Page 29: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/29.jpg)
Ok, chega de teoria...
Vamos praticar!!
![Page 30: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/30.jpg)
Preparar o Ambiente
1º Passo
![Page 31: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/31.jpg)
Use a última versão estávelhttp://www.php.net/downloads.php
![Page 32: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/32.jpg)
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
![Page 33: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/33.jpg)
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
![Page 34: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/34.jpg)
Inicializar o Servidor WebNo console, acesse a pasta dos scripts php, depois digite:
> php -S localhost:8080
![Page 35: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/35.jpg)
Criar o Script PHP
2º Passo
![Page 36: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/36.jpg)
Bloco de Notas<?php echo ‘Hello World’; ?>
Salvar na pasta “www” como “index.php”
![Page 37: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/37.jpg)
Executar o Script PHP
3º Passo
![Page 38: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/38.jpg)
Navegador WebAcessar:
http://localhost:8000/index.php
![Page 39: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/39.jpg)
PHP Básico
![Page 40: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/40.jpg)
Tipos Primitivos
• Boolean• Integer• Float• String• Array• NULL• Object
![Page 41: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/41.jpg)
Boolean
<?php
$variavel = true;$variavel = false;
$variavel = (50 == '50'); // true $variavel = (50 != '50'); // false
$variavel = (50 === '50'); // false$variavel = (50 !== '50'); // true
![Page 42: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/42.jpg)
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³
![Page 43: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/43.jpg)
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"';
![Page 44: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/44.jpg)
<?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
![Page 45: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/45.jpg)
<?php
$variavel = 'Legal';
// Outputs: Variáveis funcionam assim: Legal echo “Variaveis funcionam assim: $variavel”;
StringAspas Duplas
![Page 46: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/46.jpg)
Array
<?php
$array = array("foo", "bar", "hello", "world");$array = ["foo", "bar", "hello", "world"]; // PHP >= 5.4
![Page 47: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/47.jpg)
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", ];
![Page 48: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/48.jpg)
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)
}
![Page 49: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/49.jpg)
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
![Page 50: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/50.jpg)
NULL
<?php
$variavel = NULL;$variavel = Null;$variavel = null;
![Page 51: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/51.jpg)
Constantes
![Page 52: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/52.jpg)
Funções<?php
function helloWorld() { echo 'Hello World'; } helloWorld(); // Hello World
function maiusculo($texto) { return strtoupper($texto); } echo maiusculo('jonata weber'); // JONATA WEBER
![Page 53: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/53.jpg)
Funções AnônimasLambda e Closure
![Page 54: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/54.jpg)
Operadores Aritméticos
![Page 55: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/55.jpg)
Operadores Lógicos
![Page 56: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/56.jpg)
Operadores de String
![Page 57: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/57.jpg)
Operadores de Atribuição
![Page 58: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/58.jpg)
Incremento / Decremento
![Page 59: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/59.jpg)
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
![Page 60: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/60.jpg)
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
![Page 61: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/61.jpg)
IF / ELSEIF / ELSE
![Page 62: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/62.jpg)
Operador Ternário
![Page 63: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/63.jpg)
WHILE / DO-WHILE
![Page 64: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/64.jpg)
FOR / FOREACH
![Page 65: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/65.jpg)
FOREACH
![Page 66: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/66.jpg)
SWITCH
![Page 67: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/67.jpg)
Include / Requirearquivo1.php
arquivo2.php
![Page 68: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/68.jpg)
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
![Page 69: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/69.jpg)
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
![Page 70: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/70.jpg)
Prática!
![Page 71: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/71.jpg)
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’.
![Page 72: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/72.jpg)
Prática!
![Page 73: SIMCIT 2013 - Mini-curso PHP](https://reader035.vdocuments.site/reader035/viewer/2022062319/55611d5bd8b42aa06b8b45b7/html5/thumbnails/73.jpg)
• 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