Introdução ao PHP
Prof. Mauricio Garcia Nascimento
Prof. Daniel Arndt Alves
Introdução ao Desenvolvimento de Sistemas Web com PHP
Programa de Verão IME-USP 2014
Arquivo PHP
Extensão do script: php (convenção)
“Tag” do PHP
Pode ser inserida em qualquer posição do script,
quantas vezes for necessário
<?php
...
/* código */
...
?>

!2

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br
ola.php
<html>
<body>
!
<?php
echo "Ola Mundo";
?>
!
</body>
</html>

!3

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br
Requisição do script PHP
Requisição: http://servidor/ola.php
Resposta: código HTML
ola.php

<html>
<body>

<html>
<body>

<?php
echo "Ola Mundo";
?>

Ola Mundo

!

!

!

!

</body>
</html>

</body>
</html>

!4

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br
Tipos de dados
Básicos
Lógico (boolean)
Inteiro (int)
Decimal (float)
Texto (string)

!
Especiais / Compostos
Vetor (array)
Objeto
Recurso
NULO

!5

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br
Tipo inteiro: representações
Decimal
10, 20, -2

Exponencial
2E7, 5E-8

Octal
0135, 0777, 053

Hexadecimal
0xFA, -0x10

!6

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br
Tipo Lógico: representações
true

false

número ≠ 0

número 0

string não vazia

string vazia
string “0”

!7

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br
Variáveis
Regras de formação do nome
“$” seguido de uma letra, e opcionalmente de uma sequência de
letras e números

!

$Nome = 'abc';
$AUX2 = 10.5;
$flag = false;
$_cont1_aux = 1;
!
Boa prática
Nome de variáveis sempre em minúsculo

!8

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br
Variáveis no PHP
Não são tipadas
Não são declaradas

$Nome = 'abc';
$AUX2 = 10.5;
$flag = false;
$_cont1_aux = 1;
!

São case-sensitive

$Nome ≠ $nome ≠ $NOME

!9

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br
Constantes
Formação do nome
regra semelhante às variáveis, sem o $

Boa prática
nome em maiúsculo

!

!

define('NOME', 'abc');
define('VERDADEIRO', true);
!

echo NOME;
if (VERDADEIRO) …
!10

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br
Comentários no PHP
<html>
<body>
<?php
//comentário

!
# outro comentário

!

Comentários no PHP são
enviados ao browser?

echo "<b>Ola Mundo</b>";
/*
várias linhas
de comentário
*/
?>
</body>
</html>
!11

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br
Operadores
Atribuição

$nome = 'abc';

Aritméticos
+

-

/

*

%

Incremento / Decremento
Concatenador de strings

$a + $b
$c / 10
10 % 3
$a++
++$a
$b-$str = 'a' . 'b';
echo $str;
//'ab’

!12

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br
Função sprintf
str sprintf (str $format [, mix $args])
<?php
$base = 10;
$altura = 2.5;
$area = $base * $altura / 2;

!

echo sprintf('Área igual a <b>%.2f</b>', $area);

!

echo sprintf('O valor da %s é %d', 'soma', 10);
?>

Outros formatos em http://php.net/sprintf

!13

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br
Operadores
Atribuição-aritmético
+=

-=

/=

*=

%=

!
!
Referência

$a += 2;
$b /= 3;

// $a = $a+2;
// $b = $b/3;

&
$a = 10;
$b = $a;
$c = &$a;
$b++;
$c++;

Atribuição por valor

!

Atribuição por referência

!

//$a, $b, $c ??

!14

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br
Operadores de comparação
==

Equivalência

!=

Não-equivalência

===

Identidade

!==

Não-identidade

<

<=

!15

>

>=

$a =
$b =
$c =
echo
echo
echo

10;
10;
'10';
$a == $b;
$a == $c;
$a === $c;

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br

//true
//true
//false
Operadores lógicos
&&

and

E

||

or

Ou
Negação

!

if ($a == 10 && $b) ...
echo !$a;

!16

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br
Estruturas condicionais
if (condição) {
…
}

if ($a < 5) {
echo 'Menor que 5';
}

if (condição) {
…
} else {
…
}

if ($a < 5) {
echo 'Menor que 5';
} else {
echo 'Maior ou igual a 5';
}

!17

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br
Estruturas condicionais
if (condição) {
…
} else if (condição2) {
…
}
else {
…
}

!18

if ($a < 5) {
echo 'Menor que 5';
} else if ($a > 5) {
echo 'Maior que 5';
} else {
echo 'Igual a 5';
}

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br
Estruturas condicionais
Operador condicional ternário
if ($a == 5)
echo 'sim';
else
echo 'não’;
Operador ternário

echo $a == 5 ? 'sim' : 'não’;

!19

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br
Estruturas condicionais
switch (expressão) {
case 'val1':
//comandos
break;

!
case 'val2':
//comandos
break;

!

“else”

default:
//comandos
break;
}

!20

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br
Estruturas de repetição
while (condição) {
…
}

do {
…
} while (condição);

for ($i=0; $i<10; $i++) {
…
}

!21

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br
Estruturas de repetição
Controle do fluxo de execução
break
continue
$i = 0;
while ($i<10) {
if (++$i == 5)
break;

!

$i = 0;
while ($i<10) {
if (++$i == 5)
continue;

!

echo $i.'<br />';
}

!22

echo $i.'<br />';
}

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados

Prof. Daniel Arndt Alves – progdan@progdan.pro.br

Introducao ao PHP

  • 1.
    Introdução ao PHP Prof.Mauricio Garcia Nascimento Prof. Daniel Arndt Alves Introdução ao Desenvolvimento de Sistemas Web com PHP Programa de Verão IME-USP 2014
  • 2.
    Arquivo PHP Extensão doscript: php (convenção) “Tag” do PHP Pode ser inserida em qualquer posição do script, quantas vezes for necessário <?php ... /* código */ ... ?> !2 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  • 3.
    ola.php <html> <body> ! <?php echo "Ola Mundo"; ?> ! </body> </html> !3 Introduçãoao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  • 4.
    Requisição do scriptPHP Requisição: http://servidor/ola.php Resposta: código HTML ola.php <html> <body> <html> <body> <?php echo "Ola Mundo"; ?> Ola Mundo ! ! ! ! </body> </html> </body> </html> !4 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  • 5.
    Tipos de dados Básicos Lógico(boolean) Inteiro (int) Decimal (float) Texto (string) ! Especiais / Compostos Vetor (array) Objeto Recurso NULO !5 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  • 6.
    Tipo inteiro: representações Decimal 10,20, -2 Exponencial 2E7, 5E-8 Octal 0135, 0777, 053 Hexadecimal 0xFA, -0x10 !6 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  • 7.
    Tipo Lógico: representações true false número≠ 0 número 0 string não vazia string vazia string “0” !7 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  • 8.
    Variáveis Regras de formaçãodo nome “$” seguido de uma letra, e opcionalmente de uma sequência de letras e números ! $Nome = 'abc'; $AUX2 = 10.5; $flag = false; $_cont1_aux = 1; ! Boa prática Nome de variáveis sempre em minúsculo !8 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  • 9.
    Variáveis no PHP Nãosão tipadas Não são declaradas $Nome = 'abc'; $AUX2 = 10.5; $flag = false; $_cont1_aux = 1; ! São case-sensitive $Nome ≠ $nome ≠ $NOME !9 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  • 10.
    Constantes Formação do nome regrasemelhante às variáveis, sem o $ Boa prática nome em maiúsculo ! ! define('NOME', 'abc'); define('VERDADEIRO', true); ! echo NOME; if (VERDADEIRO) … !10 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  • 11.
    Comentários no PHP <html> <body> <?php //comentário ! #outro comentário ! Comentários no PHP são enviados ao browser? echo "<b>Ola Mundo</b>"; /* várias linhas de comentário */ ?> </body> </html> !11 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  • 12.
    Operadores Atribuição $nome = 'abc'; Aritméticos + - / * % Incremento/ Decremento Concatenador de strings $a + $b $c / 10 10 % 3 $a++ ++$a $b-$str = 'a' . 'b'; echo $str; //'ab’ !12 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  • 13.
    Função sprintf str sprintf(str $format [, mix $args]) <?php $base = 10; $altura = 2.5; $area = $base * $altura / 2; ! echo sprintf('Área igual a <b>%.2f</b>', $area); ! echo sprintf('O valor da %s é %d', 'soma', 10); ?> Outros formatos em http://php.net/sprintf !13 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  • 14.
    Operadores Atribuição-aritmético += -= /= *= %= ! ! Referência $a += 2; $b/= 3; // $a = $a+2; // $b = $b/3; & $a = 10; $b = $a; $c = &$a; $b++; $c++; Atribuição por valor ! Atribuição por referência ! //$a, $b, $c ?? !14 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  • 15.
    Operadores de comparação == Equivalência != Não-equivalência === Identidade !== Não-identidade < <= !15 > >= $a= $b = $c = echo echo echo 10; 10; '10'; $a == $b; $a == $c; $a === $c; Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br //true //true //false
  • 16.
    Operadores lógicos && and E || or Ou Negação ! if ($a== 10 && $b) ... echo !$a; !16 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  • 17.
    Estruturas condicionais if (condição){ … } if ($a < 5) { echo 'Menor que 5'; } if (condição) { … } else { … } if ($a < 5) { echo 'Menor que 5'; } else { echo 'Maior ou igual a 5'; } !17 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  • 18.
    Estruturas condicionais if (condição){ … } else if (condição2) { … } else { … } !18 if ($a < 5) { echo 'Menor que 5'; } else if ($a > 5) { echo 'Maior que 5'; } else { echo 'Igual a 5'; } Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  • 19.
    Estruturas condicionais Operador condicionalternário if ($a == 5) echo 'sim'; else echo 'não’; Operador ternário echo $a == 5 ? 'sim' : 'não’; !19 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  • 20.
    Estruturas condicionais switch (expressão){ case 'val1': //comandos break; ! case 'val2': //comandos break; ! “else” default: //comandos break; } !20 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  • 21.
    Estruturas de repetição while(condição) { … } do { … } while (condição); for ($i=0; $i<10; $i++) { … } !21 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  • 22.
    Estruturas de repetição Controledo fluxo de execução break continue $i = 0; while ($i<10) { if (++$i == 5) break; ! $i = 0; while ($i<10) { if (++$i == 5) continue; ! echo $i.'<br />'; } !22 echo $i.'<br />'; } Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br