SlideShare una empresa de Scribd logo
1 de 72
Programação para WEB
Regis Pires Magalhães
regispiresmag@gmail.com
PHP: Primeiros
Passos
“Olá, Mundo” em PHP
<html>
<head>
<title>Exemplo</title>
</head>
<body>
<?php
echo "Olá, Mundo!";
?>
</body>
</html>
Informações sobre o PHP
<?php
phpinfo();
?>
Delimitadores de Código
O código deve estar contido entre os
delimitadores:
<?php
// ...
?>
Comentários
De linha:
De bloco:
<?php
// echo "a";
# echo "a";
?>
<?php
/* echo "a";
echo "b"; */
?>
Comandos de Saída
echo – Exibe uma ou mais Strings
void echo ( string $arg1 [, string $...] )
Sem parênteses: pode ter vários parâmetros
Com parênteses: somente um parâmetro
<?php
echo 'a', 'b', 'c', '<br/>';
echo('a<br/>');
?>
Comandos de Saída
print – Mostra uma string
int print ( string $arg )
Só permite um único parâmetro
Com ou sem parênteses
Retorna sempre 1
<?php
print 'a<br/>';
print('a<br/>');
?>
Comandos de saída
Concatenação de strings
<?php
echo 'a', 'b', 'c', '<br/>';
echo 'a' . 'b' . 'c' . '<br/>';
echo('a' . 'b' . 'c' . '<br/>');
print 'a' . 'b' . 'c' . '<br/>';
print('a' . 'b' . 'c' . '<br/>');
?>
Variáveis
Sempre precedidas de $
Case sensitive: $nome != $Nome
<?php
$nome = "João";
$sobrenome = "da Silva";
echo 'Sobrenome: $sobrenome - Nome: $nome<br/>';
echo 'Sobrenome: ' . $sobrenome . ' - Nome: ' . $nome . '<br/>';
echo "Sobrenome: $sobrenome - Nome: $nome<br/>";
echo "Nome Completo: $nome $sobrenome<br/>";
?>
Variáveis
<?php
$a = 10;
$A = 20;
echo "O valor de $a é $a e o de $A é $A";
?>
Variáveis
<?php
$a = 5;
$b = $a;
$b = 10;
echo $a; // ???
echo $b; // ???
?>
Variáveis
<?php
$a = 5;
$b = &$a;
$b = 10;
echo $a; // ???
echo $b; // ???
?>
Variáveis
<html>
<head>
<title>CEFET-PI PHB</title>
</head>
<body>
<?php
$data_de_hoje = date ("d/m/Y H:i:s",time());
?>
<p>Data e hora no servidor:
<?php echo $data_de_hoje; ?></p>
</body>
</html>
Variáveis
<html>
<head>
<title>CEFET-PI PHB</title>
</head>
<body>
<?php
$base = 10;
$altura = 20;
$area = $base * $altura;
echo "Base: $base - Altura: $altura - Área: $area";
?>
</body>
</html>
Variáveis
<?php
$a = 'PHP';
echo $a;
unset($a);
echo $a;
?>
unset – destrói a variável especificada.
Valor e Referência
<?php
$p1 = 'João';
$p2 = $p1;
$p1 = 'Maria';
echo "$p1<br/>";
echo "$p2<br/>";
?>
<?php
$p1 = 'João';
$p2 = &$p1;
$p1 = 'Maria';
echo "$p1<br/>";
echo "$p2<br/>";
?>
Variáveis Geradas Dinamicamente
$$ - permite utilizar o valor de uma variável para
servir como identificador para outra que é
criada.
<?php
$nome = "João";
$futuro_identificador = "autor";
$$futuro_identificador = $nome;
echo "O nome do autor é ";
echo $autor;
?>
Saída de dados
print_r – exibe informações sobre uma variável
var_dump - Mostra informações mais detalhadas sobre
a variável, inclusive sobre tipos.
<?php
$a = array ('a' => 'abacaxi', 'b' => 'banana',
'c' => array ('x', 'y', 'z'));
print_r ($a);
?>
<?php
$a = array (1, 2, array ("a", "b", "c"));
var_dump ($a);
$b = 3.1;
$c = TRUE;
var_dump($b,$c);
?>
Tipo Booleano
<?php
$exibir_nome = TRUE;
if ($exibir_nome) {
echo 'José da Silva<br/>';
}
$exibir_nome = false;
if ($exibir_nome) {
echo 'Maria da Silva<br/>';
}
?>
Tipo Booleano
<?php
$umidade = 91;
$vai_chover = ($umidade > 90);
if ($vai_chover) {
echo 'Está chovendo';
}
?>
Tipo Booleano
Valores considerados falsos:
Inteiro 0
Ponto flutuante 0.0
Uma string vazia "" ou "0"
Um array vazio
Um objeto sem elementos
Tipo NULL
Tipos Numéricos
<?php
// número decimal
$a = 1234;
// um número negativo
$a = -123;
// número octal (83 em decimal)
$a = 0123;
// número hexadecimal (26 em decimal)
$a = 0x1A;
// ponto flutuante
$a = 1.234;
// notação científica
$a = 4e23;
?>
Tipos Numéricos
<?php
$a = 0x1A; // 26 em decimal
$b = -16;
$c = $a + $b;
echo "$a + $b = $c"
?>
Tipos Numéricos - Operações
<?php
$x = 10;
echo($x + 5);
echo "<br/>";
echo($x - 5);
echo "<br/>";
echo($x * 5);
echo "<br/>";
echo($x / 5);
echo "<br/>";
echo($x % 8);
?>
Operadores relacionais
<, >, <=, >=, ==, !=, ===
=== (idêntico a)
Verdadeiro se os operandos forem iguais e do
mesmo tipo.
Tipos numéricos
Funções:
floor
ceil
round
abs
min
max
rand / mt_rand (melhorado)
mt_rand
<?php
echo mt_rand() . " ";
echo mt_rand() . " ";
echo mt_rand(5, 15);
?>
Tipo String
<?php
$a = 'teste';
$b = 1;
echo 'Isto é um $a $b<br/>';
echo "Isto é um $a $b<br/>";
?>
Tipo String
<?php
$a = 'Programação para Web';
echo $a,'<br/>';
echo 'Tamanho: '.strlen($a),'<br/>';
echo 'Caixa Alta: '.strtoupper($a),'<br/>';
echo 'Número: '.str_pad('57',6,'0',STR_PAD_LEFT);
?>
str_pad
preenche uma string com outra string.
Tipo String
Heredoc
Outra maneira para delimitar strings é utilizando a
sintaxe heredoc ("<<<").
<?php
$nome = "Maria";
$str = <<<FIM
Oi, $nome. Este é um exemplo de uma<br/>
string distribuída em várias linhas<br/>
utilizando a sintaxe heredoc.
FIM;
echo $str;
?>
Tipo String
Formatação de Números
number_format
string number_format (float $numero [, int $decimais])
string number_format(float $numero, int $decimais, string
$ponto_decimal, string $separador_milhares)
<?php
$numero = 1234.56;
// Notação Brasileira
$numero_formatado = number_format($numero, 2, ',', '.');
// 1.234,56
echo "Número Formatado: $numero_formatado<br/>";
?>
Tipo String
Algumas funções:
strlen – tamanho
strpos
strcmp
strcasecmp – case insensitive
strstr / stristr (case insensitive)
strchr
substr
chop ou rtrim
ltrim
trim
str_replace
substr_replace
strtolower
strtoupper
ucfirst
ucwords
strrev
str_pad
preg_split
number_format
Tipo Array
<?php
$carros = array('Palio', 'Corsa', 'Gol');
echo $carros[1];
?>
<?php
$carros[] = 'Palio';
$carros[] = 'Corsa';
$carros[] = 'Gol';
echo $carros[1];
?>
ou
Tipo Array (Associativo)
<?php
$estados = array(
'PI' => 'Teresina',
'CE' => 'Fortaleza',
'MA' => 'São Luís');
echo "$estados[PI]<br/>";
echo "{$estados['CE']}<br/>";
echo "$estados[MA]<br/>";
?>
Tipo Array
<?php
$vetor = array (10,50,100,150,200);
echo "$vetor[2] <br/>";
$vet = array (1, 2, 3, 'nome'=>'Joaquim');
echo "$vet[0] <br/>";
echo $vet['nome'];
?>
Tipo Array
<?php
$est = array('Ceará' => 'Fortaleza',
'Piauí' => 'Teresina');
echo "A capital do Piauí é $est[Piauí].<br/>";
echo "A capital do Piauí é {$est['Piauí']}.<br/>";
echo "A capital do Piauí é {$est[Piauí]}.<br/>";
echo "A capital do Piauí é " . $est['Piauí'] . ".<br/>";
?>
Uso de chaves em Strings
Dividindo uma String em Array
<?php
$str = ' Esta é a minha casa2. ';
$str .= ' Oi, ela é muito bem dividida!!! ';
$array = preg_split('/[W]+/', $str, -1,
PREG_SPLIT_NO_EMPTY);
$tamanho = count($array);
echo "Número de palavras: $tamanho<br/>";
echo "Palavras: <br/>";
foreach($array as $palavra) {
echo "$palavra<br/>";
}
?>
Tipo Array
Funções:
array
is_array
count / sizeof
in_array
IsSet($array[$key])
unset -> remover elementos
current ou pos
next
prev
reset
end
each
max
array_flip
array_reverse
shuffle
array_pad
array_slice – extrai parte do array
array_splice – remove e subst. parte do
array.
asort – ordena e mantém assoc.
arsort
ksort
krsort
sort – ordena um array
rsort
uasort
aksort
usort
Laço - foreach
<?php
$vetor = array('banana','laranja','abacaxi','caju');
foreach ($vetor as $item) {
echo "$item <br/>";
}
?>
Escopo de variáveis
<?php
$num = 5000;
function testa_escopo1() {
$num += 5;
echo "$num <br/>";
}
echo "$num <br/>";
testa_escopo1();
?>
Escopo de variáveis
<?php
$num = 5000;
function testa_escopo1() {
global $num;
$num += 5;
echo "$num <br/>";
}
echo "$num <br/>";
testa_escopo1();
?>
Escopo de variáveis
<?php
function soma($a) {
global $b;
$b = $a + 5;
}
soma(10);
echo "o valor de 'b' é $b";
?>
Constantes
Valores predefinidos que não mudam ao
longo da execução.
A função define serve para definir uma
constante.
bool define(string $name, mixed $value [,bool $case_insensitive])
O nome da constante é dado pelo parâmetro $name; o valor
é dado por $value.
Se o terceiro parâmetro ($case_insensitive) for TRUE, a
constante será definida como case-insensitive. O padrão é
case-sensitive.
Constantes
<?php
define('CONSTANTE', 'Alô Mundo.');
echo CONSTANTE . '<br/>';
echo Constante . '<br/>';
define('SAUDACAO', 'Alô Você.',TRUE);
echo SAUDACAO . '<br/>';
echo Saudacao . '<br/>';
?>
Constantes
CONSTANTE DESCRIÇÃO
TRUE Valor verdadeiro (utilizado para comparação).
FALSE Valor falso.
__FILE__ Contém o nome do script que está sendo executado.
__LINE__ Contém o número da linha do script que está sendo executado.
PHP_VERSION Contém a versão corrente do PHP.
PHP_OS Nome do sistema operacional no qual o PHP está rodando.
E_ERROR Exibe um erro ocorrido em um script. A execução é interrompida.
E_WARNING Exibe uma mensagem de aviso do PHP. A execução não pára.
E_PARSE Exibe um erro de sintaxe. A execução é interrompida.
E_NOTICE Mostra que ocorreu algo, não necessariamente um erro.
A execução não pára.
Algumas constantes predefinidas:
Constantes
<?php
echo 'Arquivo: ' . __FILE__ . '<br/>';
echo 'Linha: ' . __LINE__ . '<br/>';
echo 'Versão do PHP: ' . PHP_VERSION . '<br/>';
echo 'Sistema Operacional: ' . PHP_OS . '<br/>';
?>
Desvio
<?php
$a = True;
if ($a) {
echo 'Verdadeiro';
} else {
echo 'Falso';
}
?>
Desvio
<?php
$idade = 15;
if ($idade < 18) {
echo 'Não pode entrar';
} else {
echo 'Pode entrar';
}
?>
Desvio
<?php
$d = getdate();
switch ($d['wday']) {
case 0:
$dia = 'Domingo'; break;
case 1:
$dia = 'Segunda'; break;
case 2:
$dia = 'Terça'; break;
case 3:
$dia = 'Quarta'; break;
case 4:
$dia = 'Quinta'; break;
case 5:
$dia = 'Sexta'; break;
case 6:
$dia = 'Sábado'; break;
default:
$dia = 'Erro';
}
echo "Hoje é $dia";
?>
Laço contado
<?php
echo 'Números ímpares de 1 a 100: <br/>';
for ($i = 1; $i < 100; $i += 2) {
echo "$i ";
}
?>
Laço condicional
<?php
echo 'Números entre 1 e 10: <br/>';
$i = 1;
while($i <= 10) {
echo "$i ";
$i++;
}
?>
Laço condicional
<?php
echo 'Números entre 1 e 10: <br/>';
$i = 1;
do {
echo "$i ";
$i++;
} while($i <= 10)
?>
Sintaxe alternativa
 Existe uma sintaxe alternativa para algumas
estruturas de controle:
 if, while, for, foreach e switch.
 A forma básica é mudar o sinal de abertura de bloco
para dois-pontos (:) e o sinal de fechamento para
endif;, endwhile;, endfor;, endforeach; ou
endswitch;, respectivamente.
Sintaxe alternativa
<?php
if ($a == 5):
echo "a igual a 5";
echo "...";
elseif ($a == 6):
echo "a igual a 6";
echo "!!!";
else:
echo "a não é nem 5 nem 6";
endif;
?>
Sintaxe alternativa
...
<ul>
<?php foreach($valores as $elemento): ?>
<li><?= $elemento ?></li>
<?php endforeach; ?>
</ul>
...
Função
<?php
function media($a, $b) {
return ($a + $b) / 2;
}
echo 'A média entre 2 e 7 é: ' . media(2,7);
?>
Função
<?php
function area_circulo($raio) {
return M_PI * pow($raio, 2);
}
$meuRaio = 5;
$area = area_circulo($meuRaio);
echo "Raio: $meuRaio<br/>";
echo "Área: $area<br/>";
?>
Função
<?php
function escreve_texto() {
echo 'Já sei criar funções em PHP';
}
escreve_texto();
?>
Função
 O caracter '@' poder ser usado imediatamente antes do
nome da função para suprimir possíveis mensagens de
erro.
<?php
funcao_inexistente();
?>
<?php
@funcao_inexistente();
?>
include ou require
 Ambos incluem e avaliam o arquivo informado.
 A ausência do arquivo especificado no require,
interrompe o processamento e produz um Fatal
Error.
include_once ou require_once
 Similar a include e require, mas se o arquivo
já tiver sido incluído, a inclusão não será feita
novamente.
Dados entre páginas
HTTP não possui estado
Cada requisição é única e não sabe nada sobre as
demais.
Não tem memória.
Cada requisição resulta na execução de um processo
que é finalizado logo após sua execução.
Para uma página mandar informações para uma outra
há as seguintes opções:
Formulários HTML
Cookies
Sessões
Dados entre páginas
A técnica mais simples de passar dados entre páginas
usa os métodos GET e POST do protocolo HTTP.
GET – dados são transmitidos na própria URL.
Vantagem: pode ser adicionado aos favoritos.
Exemplo: pesquisa no Google...
http://www.google.com.br/search?hl=pt-BR&q=cefet&btnG=Pesquisar&meta=
Desvantagens:
Não seguro para informações confidenciais como senha;
Requisições GET ficam gravadas no log do servidor e no histórico do
cliente;
O tamanho da URL é limitado, ficando inviável enviar muita informação
via GET.
Dados entre páginas
GET é muito usado para navegação (links).
POST
POST é a forma ideal de transmitir dados de
formulários;
Vantagens:
Mais seguro que GET, pois a informação não fica tão visível;
Permite a passagem de grande quantidade de dados;
Desvantagens:
Não pode ser adicionado aos favoritos;
Os resultados podem ser perdidos se o usuário navegar pelos
botões voltar e avançar no navegador;
Dados entre páginas
Resumindo:
Usar POST em formulários;
Usar GET para navegação e buscas.
Dados entre páginas - GET
<!-- formulario.php -->
<html>
<head>
<title>PHP Teste</title>
</head>
<body>
<form action="processa.php" method="GET">
Seu nome <input type="text" name="nome" />
Sua idade: <input type="text" name="idade" />
<input type="submit">
</form>
</body>
</html>
Dados entre páginas - GET
<!-- processa.php -->
<html>
<head>
<title>PHP Teste</title>
</head>
<body>
Oi <?php echo $_GET["nome"]; ?>.
Você tem <?php echo $_GET["idade"]; ?> anos.
</body>
</html>
Dados entre páginas - POST
<!-- formulario.php -->
<html>
<head>
<title>PHP Teste</title>
</head>
<body>
<form action="processa.php" method="POST">
Seu nome <input type="text" name="nome" />
Sua idade: <input type="text" name="idade" />
<input type="submit">
</form>
</body>
</html>
Dados entre páginas - POST
<!-- processa.php -->
<html>
<head>
<title>PHP Teste</title>
</head>
<body>
Oi <?php echo $_POST["nome"]; ?>.
Você tem <?php echo $_POST["idade"]; ?> anos.
</body>
</html>
Usando uma única página
<html>
<head><title>CEFET-PI PHB</title></head>
<body>
<form action="nome_idade.php" method="POST">
<p>Seu nome <input type="text" name="nome"
value="<?php echo $_POST['nome'] ?>"/></p>
<p>Sua idade: <input type="text" name="idade"
value="<?php echo $_POST['idade'] ?>"/></p>
<input type="submit">
</form>
<?php
if (isset($_POST['nome'])) {
echo "Oi, {$_POST['nome']}.";
echo "Você tem {$_POST['idade']} anos.";
}
?>
</body>
</html>
Dados entre páginas
_REQUEST
Contém um array associativo com os conteúdos de
$_GET, $_POST e $_COOKIE.
<form action="foo.php" method="post">
Nome: <input type="text" name="username" /><br />
Email: <input type="text" name="email" /><br />
<input type="submit" name="submit" value="Me aperte!" />
</form>
<?php
echo $_POST['username'];
echo $_REQUEST['username'];
?>
Variáveis HTTP
$_SERVER
$_ENV
$_COOKIE
$_GET
$_POST
$_FILES
$_REQUEST
$_SESSION
$GLOBALS
$HTTP_RAW_POST_DATA
$http_response_header

Más contenido relacionado

La actualidad más candente

Eng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorEng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorManuel Menezes de Sequeira
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigoMauro Pereira
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosRegis Magalhães
 
Conjunto de instruções mips - introdução
Conjunto de instruções mips - introduçãoConjunto de instruções mips - introdução
Conjunto de instruções mips - introduçãoElaine Cecília Gatto
 
Assertividade
AssertividadeAssertividade
Assertividadepsimais
 
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)Leinylson Fontinele
 
Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++PeslPinguim
 
A função SE: O que é e como usá-la.
A função SE: O que é e como usá-la.A função SE: O que é e como usá-la.
A função SE: O que é e como usá-la.Rodrigo Aiosa
 
Algoritmos resolvidos lista 2
Algoritmos resolvidos lista 2Algoritmos resolvidos lista 2
Algoritmos resolvidos lista 2isa_ise
 
Problemas no desenvolvimento do software
Problemas no desenvolvimento do softwareProblemas no desenvolvimento do software
Problemas no desenvolvimento do softwareIvan Ricarte
 
Introdução à Teoria Geral da Administração
Introdução à Teoria Geral da AdministraçãoIntrodução à Teoria Geral da Administração
Introdução à Teoria Geral da AdministraçãoRubens Vinicius Conte
 
Curso Microsoft Excel Specialist
Curso Microsoft Excel Specialist Curso Microsoft Excel Specialist
Curso Microsoft Excel Specialist Vasco Marques
 
Gestão por competência
Gestão por competênciaGestão por competência
Gestão por competênciaelimarmelo
 
Sistemas de Numeracao
Sistemas de NumeracaoSistemas de Numeracao
Sistemas de NumeracaoMauro Pereira
 
Organização do trabalho
Organização do trabalhoOrganização do trabalho
Organização do trabalhoJosé Gomes
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesaPacc UAB
 
Dinâmicas relativas a criatividade
Dinâmicas relativas a criatividadeDinâmicas relativas a criatividade
Dinâmicas relativas a criatividadeSilmara Borghetti
 
Introdução a e-commerce
Introdução a e-commerceIntrodução a e-commerce
Introdução a e-commerceSimone Mura
 

La actualidad más candente (20)

Structs em C
Structs em CStructs em C
Structs em C
 
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorEng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros Passos
 
Conjunto de instruções mips - introdução
Conjunto de instruções mips - introduçãoConjunto de instruções mips - introdução
Conjunto de instruções mips - introdução
 
Assertividade
AssertividadeAssertividade
Assertividade
 
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
 
Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++
 
A função SE: O que é e como usá-la.
A função SE: O que é e como usá-la.A função SE: O que é e como usá-la.
A função SE: O que é e como usá-la.
 
Algoritmos resolvidos lista 2
Algoritmos resolvidos lista 2Algoritmos resolvidos lista 2
Algoritmos resolvidos lista 2
 
Problemas no desenvolvimento do software
Problemas no desenvolvimento do softwareProblemas no desenvolvimento do software
Problemas no desenvolvimento do software
 
Introdução à Teoria Geral da Administração
Introdução à Teoria Geral da AdministraçãoIntrodução à Teoria Geral da Administração
Introdução à Teoria Geral da Administração
 
Curso Microsoft Excel Specialist
Curso Microsoft Excel Specialist Curso Microsoft Excel Specialist
Curso Microsoft Excel Specialist
 
Gestão por competência
Gestão por competênciaGestão por competência
Gestão por competência
 
Sistemas de Numeracao
Sistemas de NumeracaoSistemas de Numeracao
Sistemas de Numeracao
 
Organização do trabalho
Organização do trabalhoOrganização do trabalho
Organização do trabalho
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesa
 
Dinâmicas relativas a criatividade
Dinâmicas relativas a criatividadeDinâmicas relativas a criatividade
Dinâmicas relativas a criatividade
 
Introdução a e-commerce
Introdução a e-commerceIntrodução a e-commerce
Introdução a e-commerce
 

Destacado

Exercitando modelagem em UML
Exercitando modelagem em UMLExercitando modelagem em UML
Exercitando modelagem em UMLinfo_cimol
 
Condicional 02 Pascal Exercicio
Condicional 02 Pascal ExercicioCondicional 02 Pascal Exercicio
Condicional 02 Pascal ExercicioMarcus Vinicius
 
Java vetores e matrizes
Java   vetores e matrizesJava   vetores e matrizes
Java vetores e matrizesArmando Daniel
 
aula 08 - Logica de Programacao
aula 08 - Logica de Programacaoaula 08 - Logica de Programacao
aula 08 - Logica de ProgramacaoAislan Rafael
 
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...Flávio Freitas
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascalJocelma Rios
 
Aula 06 vetores e matrizes
Aula 06   vetores e matrizesAula 06   vetores e matrizes
Aula 06 vetores e matrizesTácito Graça
 
Apostila Linguagem C
Apostila Linguagem CApostila Linguagem C
Apostila Linguagem Cinfo_cimol
 

Destacado (20)

Curso de Linguagem C
Curso de Linguagem CCurso de Linguagem C
Curso de Linguagem C
 
Exercitando modelagem em UML
Exercitando modelagem em UMLExercitando modelagem em UML
Exercitando modelagem em UML
 
Condicional 02 Pascal Exercicio
Condicional 02 Pascal ExercicioCondicional 02 Pascal Exercicio
Condicional 02 Pascal Exercicio
 
Java vetores e matrizes
Java   vetores e matrizesJava   vetores e matrizes
Java vetores e matrizes
 
Programação aula002
Programação aula002Programação aula002
Programação aula002
 
Ordenação
OrdenaçãoOrdenação
Ordenação
 
Sugestões de 71 jogos
Sugestões de 71 jogosSugestões de 71 jogos
Sugestões de 71 jogos
 
POO Plano de Curso
POO Plano de CursoPOO Plano de Curso
POO Plano de Curso
 
Memoria Virtual
Memoria VirtualMemoria Virtual
Memoria Virtual
 
Lista Exercicios 03
Lista Exercicios 03Lista Exercicios 03
Lista Exercicios 03
 
Algoritmos - Vetores
Algoritmos - VetoresAlgoritmos - Vetores
Algoritmos - Vetores
 
aula 08 - Logica de Programacao
aula 08 - Logica de Programacaoaula 08 - Logica de Programacao
aula 08 - Logica de Programacao
 
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
 
Aula 06 vetores e matrizes
Aula 06   vetores e matrizesAula 06   vetores e matrizes
Aula 06 vetores e matrizes
 
Lista Exercicios C
Lista Exercicios CLista Exercicios C
Lista Exercicios C
 
Merci 10 Completo
Merci 10 CompletoMerci 10 Completo
Merci 10 Completo
 
Apostila Linguagem C
Apostila Linguagem CApostila Linguagem C
Apostila Linguagem C
 
Java Lista Exercicios 02
Java Lista Exercicios 02Java Lista Exercicios 02
Java Lista Exercicios 02
 
Pascal Registros
Pascal RegistrosPascal Registros
Pascal Registros
 

Similar a Prog web 02-php-primeiros-passos

Similar a Prog web 02-php-primeiros-passos (20)

PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantes
 
Aula 02 - Curso PHP e MySQL
Aula 02 - Curso PHP e MySQLAula 02 - Curso PHP e MySQL
Aula 02 - Curso PHP e MySQL
 
Aula 02 - Introdução ao PHP - Programação Web
Aula 02  - Introdução ao PHP - Programação WebAula 02  - Introdução ao PHP - Programação Web
Aula 02 - Introdução ao PHP - Programação Web
 
apostila.pdf
apostila.pdfapostila.pdf
apostila.pdf
 
Linguagem PHP
Linguagem PHPLinguagem PHP
Linguagem PHP
 
Hello SAFE World!!!
Hello SAFE World!!!Hello SAFE World!!!
Hello SAFE World!!!
 
2ª aula php
2ª aula php2ª aula php
2ª aula php
 
PW03 - Programação Web PHP Arrays (Vetores)
PW03 - Programação Web PHP Arrays (Vetores)PW03 - Programação Web PHP Arrays (Vetores)
PW03 - Programação Web PHP Arrays (Vetores)
 
Php 07 Cakephp
Php 07 CakephpPhp 07 Cakephp
Php 07 Cakephp
 
Introdução ao PHP Parte 2
Introdução ao PHP Parte 2Introdução ao PHP Parte 2
Introdução ao PHP Parte 2
 
PHP básico para iniciantes
PHP básico para iniciantesPHP básico para iniciantes
PHP básico para iniciantes
 
Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php seguros
 
Minicurso PHP básico
Minicurso PHP básicoMinicurso PHP básico
Minicurso PHP básico
 
Introdução ao php
Introdução ao phpIntrodução ao php
Introdução ao php
 
Aula 03 - Introducao ao PHP (1).pdf
Aula 03 - Introducao ao PHP (1).pdfAula 03 - Introducao ao PHP (1).pdf
Aula 03 - Introducao ao PHP (1).pdf
 
Aula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites IIAula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites II
 
Revisao php
Revisao phpRevisao php
Revisao php
 
PHP - Uma Pequena Introducao
PHP - Uma Pequena IntroducaoPHP - Uma Pequena Introducao
PHP - Uma Pequena Introducao
 
Php
PhpPhp
Php
 
Ganhando tempo com casos de testes
Ganhando tempo com casos de testesGanhando tempo com casos de testes
Ganhando tempo com casos de testes
 

Más de Regis Magalhães

Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducaoRegis Magalhães
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosRegis Magalhães
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webRegis Magalhães
 
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosProg web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosRegis Magalhães
 
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosProg web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosRegis Magalhães
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosRegis Magalhães
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webRegis Magalhães
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducaoRegis Magalhães
 
Linked Data Tutorial - Conferencia W3C Brasil 2011
Linked Data Tutorial - Conferencia W3C Brasil 2011Linked Data Tutorial - Conferencia W3C Brasil 2011
Linked Data Tutorial - Conferencia W3C Brasil 2011Regis Magalhães
 
Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Regis Magalhães
 

Más de Regis Magalhães (20)

High Dimensional Data
High Dimensional DataHigh Dimensional Data
High Dimensional Data
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
PHP 10 CodeIgniter
PHP 10 CodeIgniterPHP 10 CodeIgniter
PHP 10 CodeIgniter
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducao
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
 
Prog web 09-php-crud-mvc
Prog web 09-php-crud-mvcProg web 09-php-crud-mvc
Prog web 09-php-crud-mvc
 
Prog web 08-php-mvc
Prog web 08-php-mvcProg web 08-php-mvc
Prog web 08-php-mvc
 
Prog web 07-pdo
Prog web 07-pdoProg web 07-pdo
Prog web 07-pdo
 
Prog web 06-php-oo
Prog web 06-php-ooProg web 06-php-oo
Prog web 06-php-oo
 
Prog web 05-php-mysql
Prog web 05-php-mysqlProg web 05-php-mysql
Prog web 05-php-mysql
 
Prog web 04-php-gd
Prog web 04-php-gdProg web 04-php-gd
Prog web 04-php-gd
 
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosProg web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhos
 
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosProg web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhos
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducao
 
Linked Data Tutorial - Conferencia W3C Brasil 2011
Linked Data Tutorial - Conferencia W3C Brasil 2011Linked Data Tutorial - Conferencia W3C Brasil 2011
Linked Data Tutorial - Conferencia W3C Brasil 2011
 
Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011
 
Curso Ruby
Curso RubyCurso Ruby
Curso Ruby
 

Prog web 02-php-primeiros-passos

  • 1. Programação para WEB Regis Pires Magalhães regispiresmag@gmail.com PHP: Primeiros Passos
  • 2. “Olá, Mundo” em PHP <html> <head> <title>Exemplo</title> </head> <body> <?php echo "Olá, Mundo!"; ?> </body> </html>
  • 3. Informações sobre o PHP <?php phpinfo(); ?>
  • 4. Delimitadores de Código O código deve estar contido entre os delimitadores: <?php // ... ?>
  • 5. Comentários De linha: De bloco: <?php // echo "a"; # echo "a"; ?> <?php /* echo "a"; echo "b"; */ ?>
  • 6. Comandos de Saída echo – Exibe uma ou mais Strings void echo ( string $arg1 [, string $...] ) Sem parênteses: pode ter vários parâmetros Com parênteses: somente um parâmetro <?php echo 'a', 'b', 'c', '<br/>'; echo('a<br/>'); ?>
  • 7. Comandos de Saída print – Mostra uma string int print ( string $arg ) Só permite um único parâmetro Com ou sem parênteses Retorna sempre 1 <?php print 'a<br/>'; print('a<br/>'); ?>
  • 8. Comandos de saída Concatenação de strings <?php echo 'a', 'b', 'c', '<br/>'; echo 'a' . 'b' . 'c' . '<br/>'; echo('a' . 'b' . 'c' . '<br/>'); print 'a' . 'b' . 'c' . '<br/>'; print('a' . 'b' . 'c' . '<br/>'); ?>
  • 9. Variáveis Sempre precedidas de $ Case sensitive: $nome != $Nome <?php $nome = "João"; $sobrenome = "da Silva"; echo 'Sobrenome: $sobrenome - Nome: $nome<br/>'; echo 'Sobrenome: ' . $sobrenome . ' - Nome: ' . $nome . '<br/>'; echo "Sobrenome: $sobrenome - Nome: $nome<br/>"; echo "Nome Completo: $nome $sobrenome<br/>"; ?>
  • 10. Variáveis <?php $a = 10; $A = 20; echo "O valor de $a é $a e o de $A é $A"; ?>
  • 11. Variáveis <?php $a = 5; $b = $a; $b = 10; echo $a; // ??? echo $b; // ??? ?>
  • 12. Variáveis <?php $a = 5; $b = &$a; $b = 10; echo $a; // ??? echo $b; // ??? ?>
  • 13. Variáveis <html> <head> <title>CEFET-PI PHB</title> </head> <body> <?php $data_de_hoje = date ("d/m/Y H:i:s",time()); ?> <p>Data e hora no servidor: <?php echo $data_de_hoje; ?></p> </body> </html>
  • 14. Variáveis <html> <head> <title>CEFET-PI PHB</title> </head> <body> <?php $base = 10; $altura = 20; $area = $base * $altura; echo "Base: $base - Altura: $altura - Área: $area"; ?> </body> </html>
  • 15. Variáveis <?php $a = 'PHP'; echo $a; unset($a); echo $a; ?> unset – destrói a variável especificada.
  • 16. Valor e Referência <?php $p1 = 'João'; $p2 = $p1; $p1 = 'Maria'; echo "$p1<br/>"; echo "$p2<br/>"; ?> <?php $p1 = 'João'; $p2 = &$p1; $p1 = 'Maria'; echo "$p1<br/>"; echo "$p2<br/>"; ?>
  • 17. Variáveis Geradas Dinamicamente $$ - permite utilizar o valor de uma variável para servir como identificador para outra que é criada. <?php $nome = "João"; $futuro_identificador = "autor"; $$futuro_identificador = $nome; echo "O nome do autor é "; echo $autor; ?>
  • 18. Saída de dados print_r – exibe informações sobre uma variável var_dump - Mostra informações mais detalhadas sobre a variável, inclusive sobre tipos. <?php $a = array ('a' => 'abacaxi', 'b' => 'banana', 'c' => array ('x', 'y', 'z')); print_r ($a); ?> <?php $a = array (1, 2, array ("a", "b", "c")); var_dump ($a); $b = 3.1; $c = TRUE; var_dump($b,$c); ?>
  • 19. Tipo Booleano <?php $exibir_nome = TRUE; if ($exibir_nome) { echo 'José da Silva<br/>'; } $exibir_nome = false; if ($exibir_nome) { echo 'Maria da Silva<br/>'; } ?>
  • 20. Tipo Booleano <?php $umidade = 91; $vai_chover = ($umidade > 90); if ($vai_chover) { echo 'Está chovendo'; } ?>
  • 21. Tipo Booleano Valores considerados falsos: Inteiro 0 Ponto flutuante 0.0 Uma string vazia "" ou "0" Um array vazio Um objeto sem elementos Tipo NULL
  • 22. Tipos Numéricos <?php // número decimal $a = 1234; // um número negativo $a = -123; // número octal (83 em decimal) $a = 0123; // número hexadecimal (26 em decimal) $a = 0x1A; // ponto flutuante $a = 1.234; // notação científica $a = 4e23; ?>
  • 23. Tipos Numéricos <?php $a = 0x1A; // 26 em decimal $b = -16; $c = $a + $b; echo "$a + $b = $c" ?>
  • 24. Tipos Numéricos - Operações <?php $x = 10; echo($x + 5); echo "<br/>"; echo($x - 5); echo "<br/>"; echo($x * 5); echo "<br/>"; echo($x / 5); echo "<br/>"; echo($x % 8); ?>
  • 25. Operadores relacionais <, >, <=, >=, ==, !=, === === (idêntico a) Verdadeiro se os operandos forem iguais e do mesmo tipo.
  • 27. mt_rand <?php echo mt_rand() . " "; echo mt_rand() . " "; echo mt_rand(5, 15); ?>
  • 28. Tipo String <?php $a = 'teste'; $b = 1; echo 'Isto é um $a $b<br/>'; echo "Isto é um $a $b<br/>"; ?>
  • 29. Tipo String <?php $a = 'Programação para Web'; echo $a,'<br/>'; echo 'Tamanho: '.strlen($a),'<br/>'; echo 'Caixa Alta: '.strtoupper($a),'<br/>'; echo 'Número: '.str_pad('57',6,'0',STR_PAD_LEFT); ?> str_pad preenche uma string com outra string.
  • 30. Tipo String Heredoc Outra maneira para delimitar strings é utilizando a sintaxe heredoc ("<<<"). <?php $nome = "Maria"; $str = <<<FIM Oi, $nome. Este é um exemplo de uma<br/> string distribuída em várias linhas<br/> utilizando a sintaxe heredoc. FIM; echo $str; ?>
  • 31. Tipo String Formatação de Números number_format string number_format (float $numero [, int $decimais]) string number_format(float $numero, int $decimais, string $ponto_decimal, string $separador_milhares) <?php $numero = 1234.56; // Notação Brasileira $numero_formatado = number_format($numero, 2, ',', '.'); // 1.234,56 echo "Número Formatado: $numero_formatado<br/>"; ?>
  • 32. Tipo String Algumas funções: strlen – tamanho strpos strcmp strcasecmp – case insensitive strstr / stristr (case insensitive) strchr substr chop ou rtrim ltrim trim str_replace substr_replace strtolower strtoupper ucfirst ucwords strrev str_pad preg_split number_format
  • 33. Tipo Array <?php $carros = array('Palio', 'Corsa', 'Gol'); echo $carros[1]; ?> <?php $carros[] = 'Palio'; $carros[] = 'Corsa'; $carros[] = 'Gol'; echo $carros[1]; ?> ou
  • 34. Tipo Array (Associativo) <?php $estados = array( 'PI' => 'Teresina', 'CE' => 'Fortaleza', 'MA' => 'São Luís'); echo "$estados[PI]<br/>"; echo "{$estados['CE']}<br/>"; echo "$estados[MA]<br/>"; ?>
  • 35. Tipo Array <?php $vetor = array (10,50,100,150,200); echo "$vetor[2] <br/>"; $vet = array (1, 2, 3, 'nome'=>'Joaquim'); echo "$vet[0] <br/>"; echo $vet['nome']; ?>
  • 36. Tipo Array <?php $est = array('Ceará' => 'Fortaleza', 'Piauí' => 'Teresina'); echo "A capital do Piauí é $est[Piauí].<br/>"; echo "A capital do Piauí é {$est['Piauí']}.<br/>"; echo "A capital do Piauí é {$est[Piauí]}.<br/>"; echo "A capital do Piauí é " . $est['Piauí'] . ".<br/>"; ?> Uso de chaves em Strings
  • 37. Dividindo uma String em Array <?php $str = ' Esta é a minha casa2. '; $str .= ' Oi, ela é muito bem dividida!!! '; $array = preg_split('/[W]+/', $str, -1, PREG_SPLIT_NO_EMPTY); $tamanho = count($array); echo "Número de palavras: $tamanho<br/>"; echo "Palavras: <br/>"; foreach($array as $palavra) { echo "$palavra<br/>"; } ?>
  • 38. Tipo Array Funções: array is_array count / sizeof in_array IsSet($array[$key]) unset -> remover elementos current ou pos next prev reset end each max array_flip array_reverse shuffle array_pad array_slice – extrai parte do array array_splice – remove e subst. parte do array. asort – ordena e mantém assoc. arsort ksort krsort sort – ordena um array rsort uasort aksort usort
  • 39. Laço - foreach <?php $vetor = array('banana','laranja','abacaxi','caju'); foreach ($vetor as $item) { echo "$item <br/>"; } ?>
  • 40. Escopo de variáveis <?php $num = 5000; function testa_escopo1() { $num += 5; echo "$num <br/>"; } echo "$num <br/>"; testa_escopo1(); ?>
  • 41. Escopo de variáveis <?php $num = 5000; function testa_escopo1() { global $num; $num += 5; echo "$num <br/>"; } echo "$num <br/>"; testa_escopo1(); ?>
  • 42. Escopo de variáveis <?php function soma($a) { global $b; $b = $a + 5; } soma(10); echo "o valor de 'b' é $b"; ?>
  • 43. Constantes Valores predefinidos que não mudam ao longo da execução. A função define serve para definir uma constante. bool define(string $name, mixed $value [,bool $case_insensitive]) O nome da constante é dado pelo parâmetro $name; o valor é dado por $value. Se o terceiro parâmetro ($case_insensitive) for TRUE, a constante será definida como case-insensitive. O padrão é case-sensitive.
  • 44. Constantes <?php define('CONSTANTE', 'Alô Mundo.'); echo CONSTANTE . '<br/>'; echo Constante . '<br/>'; define('SAUDACAO', 'Alô Você.',TRUE); echo SAUDACAO . '<br/>'; echo Saudacao . '<br/>'; ?>
  • 45. Constantes CONSTANTE DESCRIÇÃO TRUE Valor verdadeiro (utilizado para comparação). FALSE Valor falso. __FILE__ Contém o nome do script que está sendo executado. __LINE__ Contém o número da linha do script que está sendo executado. PHP_VERSION Contém a versão corrente do PHP. PHP_OS Nome do sistema operacional no qual o PHP está rodando. E_ERROR Exibe um erro ocorrido em um script. A execução é interrompida. E_WARNING Exibe uma mensagem de aviso do PHP. A execução não pára. E_PARSE Exibe um erro de sintaxe. A execução é interrompida. E_NOTICE Mostra que ocorreu algo, não necessariamente um erro. A execução não pára. Algumas constantes predefinidas:
  • 46. Constantes <?php echo 'Arquivo: ' . __FILE__ . '<br/>'; echo 'Linha: ' . __LINE__ . '<br/>'; echo 'Versão do PHP: ' . PHP_VERSION . '<br/>'; echo 'Sistema Operacional: ' . PHP_OS . '<br/>'; ?>
  • 47. Desvio <?php $a = True; if ($a) { echo 'Verdadeiro'; } else { echo 'Falso'; } ?>
  • 48. Desvio <?php $idade = 15; if ($idade < 18) { echo 'Não pode entrar'; } else { echo 'Pode entrar'; } ?>
  • 49. Desvio <?php $d = getdate(); switch ($d['wday']) { case 0: $dia = 'Domingo'; break; case 1: $dia = 'Segunda'; break; case 2: $dia = 'Terça'; break; case 3: $dia = 'Quarta'; break; case 4: $dia = 'Quinta'; break; case 5: $dia = 'Sexta'; break; case 6: $dia = 'Sábado'; break; default: $dia = 'Erro'; } echo "Hoje é $dia"; ?>
  • 50. Laço contado <?php echo 'Números ímpares de 1 a 100: <br/>'; for ($i = 1; $i < 100; $i += 2) { echo "$i "; } ?>
  • 51. Laço condicional <?php echo 'Números entre 1 e 10: <br/>'; $i = 1; while($i <= 10) { echo "$i "; $i++; } ?>
  • 52. Laço condicional <?php echo 'Números entre 1 e 10: <br/>'; $i = 1; do { echo "$i "; $i++; } while($i <= 10) ?>
  • 53. Sintaxe alternativa  Existe uma sintaxe alternativa para algumas estruturas de controle:  if, while, for, foreach e switch.  A forma básica é mudar o sinal de abertura de bloco para dois-pontos (:) e o sinal de fechamento para endif;, endwhile;, endfor;, endforeach; ou endswitch;, respectivamente.
  • 54. Sintaxe alternativa <?php if ($a == 5): echo "a igual a 5"; echo "..."; elseif ($a == 6): echo "a igual a 6"; echo "!!!"; else: echo "a não é nem 5 nem 6"; endif; ?>
  • 55. Sintaxe alternativa ... <ul> <?php foreach($valores as $elemento): ?> <li><?= $elemento ?></li> <?php endforeach; ?> </ul> ...
  • 56. Função <?php function media($a, $b) { return ($a + $b) / 2; } echo 'A média entre 2 e 7 é: ' . media(2,7); ?>
  • 57. Função <?php function area_circulo($raio) { return M_PI * pow($raio, 2); } $meuRaio = 5; $area = area_circulo($meuRaio); echo "Raio: $meuRaio<br/>"; echo "Área: $area<br/>"; ?>
  • 58. Função <?php function escreve_texto() { echo 'Já sei criar funções em PHP'; } escreve_texto(); ?>
  • 59. Função  O caracter '@' poder ser usado imediatamente antes do nome da função para suprimir possíveis mensagens de erro. <?php funcao_inexistente(); ?> <?php @funcao_inexistente(); ?>
  • 60. include ou require  Ambos incluem e avaliam o arquivo informado.  A ausência do arquivo especificado no require, interrompe o processamento e produz um Fatal Error.
  • 61. include_once ou require_once  Similar a include e require, mas se o arquivo já tiver sido incluído, a inclusão não será feita novamente.
  • 62. Dados entre páginas HTTP não possui estado Cada requisição é única e não sabe nada sobre as demais. Não tem memória. Cada requisição resulta na execução de um processo que é finalizado logo após sua execução. Para uma página mandar informações para uma outra há as seguintes opções: Formulários HTML Cookies Sessões
  • 63. Dados entre páginas A técnica mais simples de passar dados entre páginas usa os métodos GET e POST do protocolo HTTP. GET – dados são transmitidos na própria URL. Vantagem: pode ser adicionado aos favoritos. Exemplo: pesquisa no Google... http://www.google.com.br/search?hl=pt-BR&q=cefet&btnG=Pesquisar&meta= Desvantagens: Não seguro para informações confidenciais como senha; Requisições GET ficam gravadas no log do servidor e no histórico do cliente; O tamanho da URL é limitado, ficando inviável enviar muita informação via GET.
  • 64. Dados entre páginas GET é muito usado para navegação (links). POST POST é a forma ideal de transmitir dados de formulários; Vantagens: Mais seguro que GET, pois a informação não fica tão visível; Permite a passagem de grande quantidade de dados; Desvantagens: Não pode ser adicionado aos favoritos; Os resultados podem ser perdidos se o usuário navegar pelos botões voltar e avançar no navegador;
  • 65. Dados entre páginas Resumindo: Usar POST em formulários; Usar GET para navegação e buscas.
  • 66. Dados entre páginas - GET <!-- formulario.php --> <html> <head> <title>PHP Teste</title> </head> <body> <form action="processa.php" method="GET"> Seu nome <input type="text" name="nome" /> Sua idade: <input type="text" name="idade" /> <input type="submit"> </form> </body> </html>
  • 67. Dados entre páginas - GET <!-- processa.php --> <html> <head> <title>PHP Teste</title> </head> <body> Oi <?php echo $_GET["nome"]; ?>. Você tem <?php echo $_GET["idade"]; ?> anos. </body> </html>
  • 68. Dados entre páginas - POST <!-- formulario.php --> <html> <head> <title>PHP Teste</title> </head> <body> <form action="processa.php" method="POST"> Seu nome <input type="text" name="nome" /> Sua idade: <input type="text" name="idade" /> <input type="submit"> </form> </body> </html>
  • 69. Dados entre páginas - POST <!-- processa.php --> <html> <head> <title>PHP Teste</title> </head> <body> Oi <?php echo $_POST["nome"]; ?>. Você tem <?php echo $_POST["idade"]; ?> anos. </body> </html>
  • 70. Usando uma única página <html> <head><title>CEFET-PI PHB</title></head> <body> <form action="nome_idade.php" method="POST"> <p>Seu nome <input type="text" name="nome" value="<?php echo $_POST['nome'] ?>"/></p> <p>Sua idade: <input type="text" name="idade" value="<?php echo $_POST['idade'] ?>"/></p> <input type="submit"> </form> <?php if (isset($_POST['nome'])) { echo "Oi, {$_POST['nome']}."; echo "Você tem {$_POST['idade']} anos."; } ?> </body> </html>
  • 71. Dados entre páginas _REQUEST Contém um array associativo com os conteúdos de $_GET, $_POST e $_COOKIE. <form action="foo.php" method="post"> Nome: <input type="text" name="username" /><br /> Email: <input type="text" name="email" /><br /> <input type="submit" name="submit" value="Me aperte!" /> </form> <?php echo $_POST['username']; echo $_REQUEST['username']; ?>