Professional Documents
Culture Documents
Coordenadoria de Informtica
Introduo PHP
por
Prof. MSc. Ricardo Rubens
Ricardo (arroba) ifal.edu.br
O que PHP?
fonte: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Fonte: http://www.php.net/usage.php
Agenda
PHP em HTML
Variveis em
formulrios
Identificadores
Variveis declaradas
pelo Usurio
Tipos de variveis
Estruturas de iterao
Atribuio
Constantes
Operadores e
Precedncia
Expresses
Funes de variveis
Estruturas de deciso
Ambiente de Desenvolvimento
Instalao
Xamplite - http://www.apachefriends.org/
Servidor Apache
Servidor MySQL
10
Documentao
Manual
http://www.php.net/manual/pt_BR/index.php
11
HTML
Marcaes PHP
<?php echo '<p>FPIN</p>'; ?>
<? echo '<p>FPIN</p>'; ?>
<script language:'php'> echo '<p>FPIN</p>'; </script>
Instrues PHP
echo '<p>FPIN</p>';
12
Espaos em branco
Comentrios
Mltiplas linhas
/* meu
comentrio */
Uma linha
echo 'fpin'; //comentrio 2
echo 'fpin'; #comentrio 3
13
Exerccio resolvido 1
14
Problemas
Funes...
15
Exerccio Resolvido 2
ER102.PHP
16
Exerccio Resolvido 3:
Bob's Auto Peas
Problema
Faa um programa em PHP para permitir o
pedido online de peas (pneus, leo, vela de
ignio, etc)
Planejamento da soluo
Definir Pginas
Pgina inicial
Pgina com formulrio de pedido
Pgina com resposta ao usurio
17
Exerccio Resolvido 3:
Bob's Auto Peas
Planejamento da soluo
Comece com HTML das pginas
Planeje o formulrio
Acrescente cdigo PHP, quando necessrio
Formulrio de envio
Action: processa.php
Method: post
Nome dos campos
Boto submit
18
Variveis
Contedo dinmico
<?php
echo '<p>Processado em ';
echo date('H:i - d/m/y');
echo '</p>';
?>
data: date(string data)
Concatenao: echo "<p>Processado
".date('H:i - d/m/y ')."</p>";
em
20
Exerccio 01
Mulheres
(62,1 * altura) 44,7
21
Tipos
Os
Bsicos
Boolean;
Integer;
Float (ou tambm
double);
String;
Compostos
Especiais
Resource;
Null;
Pseudo-tipos
Mixed;
Number;
Callback;
Array;
Object;
22
Verificando o tipo
Funo var_dump: imprime o tipo de uma var e seu valor
void var_dump ( mixed expression [, mixed expression [, ...]] )
<pre> <?php
$a = 8;
$b = 3.1;
$c = false;
$d = 'oi';
$e = "ola!";
$f = 2 == 2;
var_dump($a,$b,$c);
var_dump($d,$e,$f);
?> </pre>
EX101.PHP
Resultado?
int(8)
float(3.1)
bool(false)
string(2) "oi"
string(4) "ola!"
bool(true)
23
24
Boolean
25
Boolean
Boolean
Resultado?
<pre>
<?php
$a = 8;
$b = $a;
$c = (boolean) $a;
if ($a)
echo "estou no then \n";
var_dump($a, $b, $c);
echo gettype((bool)
echo gettype((bool)
echo gettype((bool)
echo gettype((bool)
echo gettype((bool)
echo gettype((bool)
echo gettype((bool)
?>
</pre>
"")."<br>";
1)."<br>";
-2)."<br>";
"foo")."<br>";
2.3e5)."<br>";
array(12))."<br>";
array())."<br>";
EX102.PHP
estou no
then int(8)
int(8)
bool(true)
boolean
boolean
boolean
boolean
boolean
boolean
boolean
27
Integer
$i = 1234; # inteiro positivo na base decimal
$i = -234; # inteiro negativo na base decimal
$i = 0234; # inteiro na base octal
# (simbolizado pelo 0)
# equivale a 156 decimal
$i = 0x34; # inteiro na base hexadecimal
#(simbolizado
# pelo 0x) equivale a 52 decimal.
Valor mximo depende da plataforma (considera
sinal), mas em geral 32 bits.
28
Integer
Overflow
<?php
Sada ??
$numero_grande=2147483647;
var_dump($numero_grande);
$numero_grande=2147483648;
var_dump($numero_grande);
saida: int(2147483647)
saida: float(2147483648)
?>
EX103.PHP
Convertendo
Casting com (int) ou (integer)
29
Ponto Flutuante
$a = 1.234;
$b = 1.2e3; #equivale a 1200
$c = 7E-10; #equivale a 0.0000007
30
Strings
Pode-se utilizar:
Aspas simples: 'O texto exato $entre as aspas.'
Exemplos
<?php
$teste = "Brasil";
$php = '---$teste--\n';
echo "$php";
?>
Resultado: ---$teste--\n
EX105.PHP
31
Strings
Pode-se utilizar:
aspas duplas: "Expande as variveis ou
caracteres de escape."
Exemplos
<?php
$test = "Brasil";
$php = "---$teste---\n";
echo "$php";
?>
Resultado: ---Brasil--EX106.PHP
32
Exerccio Resolvido:
Acesso e Modificao
Qual o resultado da execuo deste cdigo ?
<?php
// Pega o primeiro caractere da string
$str = 'Isto um teste.';
$um = $str{0};
// Pega o terceiro caractere da string
$tres = $str{2};
ER107.PHP
33
Funes e Operadores
Operadores
.
Concatenao
.=
Atribuio e
Concatenao
<?php
$a = "Ol ";
$b = $a . "mundo!"; // agora $b contm "Ol
mundo!"
$a = "Ol ";
$a .= "mundo!";
mundo!"
?>
34
Caracteres
Sintaxe
Resultado
\n
Nova linha
\t
Tabulao
\$
O smbolo $
\'
Aspa simples
\"
Aspa dupla
\\
O smbolo \
35
Operadores
Atribuio
Aritmticos
+
Adio
atribuio simples
Subtrao
+=
Multiplicao
-=
Diviso
*=
Resto da diviso
Atribuio com
multiplicao
/=
%=
.=
Atribuio com
concatenao
36
Incrementos
Incrementos
++
Incremento
--
Decremento
37
Exemplos
Resultado ?
<?php
$b = $a = 5;
$c = $a++;
$e = $d = ++$b;
$f = $e += 10;
Primeiro, $e incrementado de 10 e
termina com ovalor 16. O valor da atribu
io (16) ento atribudo a $f, e $f te
rmina com o valor 16 tambm.
?>
EX107.php
38
Operadores Lgicos
bit a bit
&
E (AND)
OU (OR)
OU EXCLUSIVO (XOR)
NO (NOT)
<<
Shift left
>>
Shift right
Lgicos
And E lgico
Or
OU lgico
Xor
OU EXCLUSIVO
NO (NOT)
&&
E lgico
||
Ou lgico
39
Comparaes
==
Igual
Iguais
=== Idntico
!=
Diferente
Diferentes
<>
Diferente
Diferentes
!==
No idntico
Diferentes ou no so do mesmo
tipo
<
Menor que
>
Maior que
<=
Menor igual
>=
Maior igual
40
Operador ternrio
(expresso 1) ? (expresso 2) : (expresso 3)
Funciona como um if... Exemplo:
if (expresso 1)
expresso 2;
else
expresso 3;
Exemplo
$x = (1==2) ?10 : 100; //Qual o valor de $x ? 100...
Controle de erro
Operador: @
Ao utilizar o operador "@", qualquer
mensagem de erro que venha a acontecer
ser ignorada.
Exemplo:
<?php
$i = 2/0;
$i = @2/0;
$i = @(2/0);
?>
EX108.PHP
42
Operadores de execuo
Operadores: ``
Qualquer comando entre esses operadores
vai ser executado pelo SO e retornado;
Exemplo:
<?php
$R = `dir c:\\windows\\system32`;
echo "<PRE> $R </PRE>";
?>
EX109.PHP
43
Ordem de precedncia
new
[
! ~ ++ -- (int) (float) (string) (array)
(object) @
* / %
+ - .
<< >>
< <= > >=
== != === !==
&
^
|
&&
||
? :
= += -= *= /= .= %= &= |= ^= <<= >>=
print
and
xor
or
44
Escopo de variveis
46
Escopo Local
48
Variveis estticas
EX113a.PHP
<?php
function Teste()
{
static $a = 0;
echo $a;
$a++;
}
Teste()
Teste();
?>
EX113b.PHP
49
Constantes
50
Constantes Mgicas
__LINE__
__FILE__
__FUNCTION__
__CLASS__
__METHOD__
51
Superglobais
$GLOBALS
$_SERVER
$_GET
$_POST
$_COOKIE
$_FILES
$_ENV
$_REQUEST
$_SESSION
52
if
Sintaxe
Notem a diferena de sintaxe
Sintaxe alternativa
<?php
$a = 0; $b = 1;
if ($a > $b){
echo "maior"
}elseif($a == $b){
echo "iguais";
}else{
echo "menor";
}
?>
EX114a.PHP
<?php
$a = 0; $b = 1;
if ($a > $b):
echo "maior"
elseif($a == $b):
echo "iguais";
else:
echo "menor";
endif;
?>
EX114b.PHP
53
while
Sintaxe
Notem a diferena de sintaxe
Qual o resultado da execuo dos 2 cdigos?
Iguais ?
<?
$i=0;
while ($i < 10){
echo ++$i;
echo "<br>";
}
?>
EX115a.PHP
Sintaxe alternativa
<?
$i=0;
while ($i < 10):
echo $i++;
echo "<br>";
endwhile;
?>
EX115b.PHP
54
do..while
Sintaxe
Sem sintaxe alternativa
<?php
$i=0;
do{
echo ++$i;
echo "<br>";
} while ($i < 10);
?>
EX116a.PHP
55
for
Sintaxe
for (declaracoes; condicao ; incremento){
Comandos;
}
<?php
for($i=0; $i<10;i++){
echo $i;
}
?>
EX117a.PHP
<?php
for($i=0; $i<10;i++):
echo $i;
endfor;
?>
EX117b.PHP
56
switch
<?php
$i=0;
if ($i == 0 || $i==-1) {
echo "i igual a 0";
} elseif ($i == 1) {
echo "i igual a 1";
} elseif ($i == 2) {
echo "i igual a 2";
}
?>
EX118.PHP
$i=0;
<?
switch ($i) {
case -1:
case 0:
echo "i igual a 0";
break;
case 1:
echo "i igual a 1";
break;
case 2:
echo "i igual a 2";
break;
}
?>
EX118.PHP
57
return
58
Reaproveitar cdigo
59
Require
60
Require once
61
Include
Semelhante ao require.
O cdigo includo em tempo de execuo.
Utilizados para criar funes cujo cdigo
includa em mltiplas pginas.
Ex.: um cabealho.
62
Include once
63
EX119.PHP
64
Funes
Argumentos de Funes
66
Argumentos de Funes
Valores Padro
<?php
function cafeteira ($tipo = "cappuccino")
{
return "Fazendo uma xcara de caf $tipo.\n";
}
echo cafeteira ();
echo cafeteira (null);
echo cafeteira ("expresso");
?>
EX122.PHP
Fazendo uma xcara de caf cappucino.
Fazendo uma xcara de .
Fazendo uma xcara de caf expresso.
68
Retornando Valores
echo soma(3,5);
69
Exerccio Resolvido
70
Exerccio 02
1.
71
Exerccio 03
1.
72
Exerccio 04
Exerccio 05
74
Exerccio 06
75
Exerccio 07
Identificao do arquivo
Use um padro para identificar os arquivos.
Ex>: exer_<numero-exerc>_<arquiv>_<autor>.xxx
<numero_exerc>: numero do exerccio no slide
<arquiv>: nome/tipo do arquivo
Index: arquivo com interface html que permite a execuo do
exercicio
Processa: primeiro arquivo php chamado a partir do index
Teste: arquivo que permite executar vrios testes sobre o
exerccio
Outros: se precisar de mais arquivos, use nomes que identifiquem
os arquivos
Identificao do aluno
Coloque um cabealho (comentrio) com
identificao do autor do exerccio em cada
arquivo
Identificao do problema
Copie e cole o texto que identifica o problema
como comentrio no arquivo de exerccio
Testes
Crie um arquivo que realiza vrios testes e
mostra o resultado na tela, caso necessrio.
78