SlideShare uma empresa Scribd logo
1 de 64
Duração: 30 horas
(40 aulas de 45 min.)
Ano letivo 2019/2020
Professor : José Carlos
 Introdução à programação Web em PHP
 Scripting do lado do servidor e do lado do cliente
 Técnicas básicas de escrita de páginas dinâmicas
 Variáveis e estruturas de controlo de execução
2
 Um script é um programa constituído por um conjunto
de instruções, escritas numa determinada linguagem e
dirigidas para uma aplicação que as executa e
interpreta.
 O PHP é uma linguagem denominada de server-side,
enquanto que a linguagem JavaScript é chamada de
client-side.
 O Apache é um Servidor HTTP que fornece páginas
HTML ou ficheiros aos browsers Web. Estas podem ser
estáticas ou geradas por um interpretador (ex: PHP)
3
 Client-side (ex: JavaScript)
• O cliente desempenha a função de processamento.
• A função do servidor é somente fornecer os ficheiros
solicitados.
Cliente Servidor
Uma cópia do
documento HTML e com
possível código não
processado é enviada ao
cliente Contém o documento HTML
requisitado. Recebe a
solicitação feita pelo browser
O browser é responsável
por interpretar o possível
código JavaScript
4
 Server-side (ex: PHP)
• O servidor desempenha a função de processamento.
Cliente Servidor
Um programa interpreta o
script (por ex: PHP) e
substitui o código pelo
resultado na página HTML.
Uma cópia do
documento HTML e com
possível código já
processado é enviada ao
cliente
5
O browser “vê” uma página
comum, que foi criada
instantaneamente no servidor
 A linguagem PHP, surgiu com a designação - Personal
Home Pages (Rasmus Lerdorf-1995);
 Actualmente, PHP surge com o significado de
Hypertext Preprocessor;
 PHP é uma linguagem de programação de scripts para
serem interpretados no lado dos servidores;
 O PHP é “incorporado” em documentos HTML;
6
 O PHP permite a construção de páginas web com
conteúdos dinâmicos.
 O facto do PHP ser uma das linguagens do lado do
servidor mais utilizadas na web deve-
se essencialmente a:
 Ser uma tecnologia distribuída gratuitamente;
 Ter uma excelente capacidade de articulação com:
• Servidores Web – Apache;
• Sistemas de gestão de base de dados – MYSQL.
7
 Funções de correio electrónico - enviar um e-mail a
uma pessoa ou lista parametrizando vários aspectos (e-
mail de origem, assunto, pessoa a responder...).
Ex.: mail(), mb_send_mail, imap_mail
 Gestão de bases de dados - interfaces para o acesso à
maioria das bases de dados.
Ex.: mysql_create_db, mysql_ field_ len, mysql_
field_ table,…
8
 Gestão de ficheiros - criar, apagar, mover, modificar
ficheiros.
Ex.: zip_open, chdir, scandir, copy, file_exists, ...
 Tratamento de Imagens – é possível uniformizar o
tamanho e o formato das imagens recebidas num site.
Ex.: getimagesize, imagecopy, imagecreate,…
 Tratamento de cookies
Ex.: setcookie, http_build_cookie,…
9
 O servidor HTTP (ex: Apache) reconhece a extensão da página
PHP e, antes de enviá-la ao browser, vai encarregar-se de a enviar
ao interpretador PHP que vai interpretar e executar tudo aquilo
que se encontre dentro das tags <?php Código PHP ?>.
 O restante, vai enviá-lo tal qual, visto que assumirá que se trata de
código HTML compreensível para o browser.
10
 As tags que indicam os scripts de PHP podem ser:
 <?php comandos; ?>
 <script language="php"> comandos </script>
 <? comandos; ?>
 <% comandos; %>
É o mais utilizado
Estes formatos necessitam de
estar activados nas definições de
configuração do PHP.
11
 Uma instrução termina com ponto e vírgula (;);
 A instrução echo apresenta a informação no ecrã;
 Um bloco de instruções é incluído dentro de chavetas
{...};
 Comentários de uma linha inserem-se depois do sinal:
# ou //
 Comentários de várias linhas inserem-se entre os sinais:
/* e */
12
 O script de PHP é embutido no código HTML e o
ficheiro gravado com a extensão .php;
 O ficheiro é colocado na pasta c:xampphtdocs;
 Para executar o programa em PHP numa máquina local,
basta digitar o endereço:
• http://localhost/nomedoficheiro.php
Ou
• http://127.0.0.1/nomedoficheiro.php
13
 Função phpinfo()
Abre uma página de informação do PHP.
 Exemplo:
14
 Exemplo:
<html>
<head>
<title>Exemplo</title>
</head>
<body>
<?php
echo "Olá, isto é um script em PHP!";
?>
</body>
</html>
15
 Variável é uma forma de guardar informações que
pode variar no decorrer da execução do script;
 Os nomes das variáveis começam sempre com $;
 O PHP é case sensitive, isto é, distingue
maiúsculas de minúsculas;
letras
 Exemplo: As variáveis $nome, $Nome, $NOME
são diferentes;
16
 O PHP não necessita da definição explicita do tipo na
declaração de variáveis:
 O tipo de uma variável é determinado pelo contexto em
que esta é utilizada.
 Exemplo:
• $var = “olá”; // Variável do tipo String
• $var = 1; // Variável do tipo Inteiro
17
 O PHP suporta os seguintes tipos de dados:
• Boolean (verdadeiro ou falso)
• Integer
• Float (nº com vírgula flutuante, ou também double)
• String (conjunto de caracteres)
• Array
• Object (pode conter várias variáveis e funções)
• Null (correspondente a um valor nulo)
18
 Função gettype()
Indica o tipo de dados que cada variável
assume.
 Exemplo:
$x=5; echo gettype($x);
19
var_dump ($x);
 Exemplo da função gettype()
<?php
$b = ($x == 10) ;
echo gettype($b).'<br>' ;
$y = 6 ;
echo gettype($y).'<br>' ;
$z = 1.5 ;
echo gettype($z).'<br>' ;
$a = “Susete Esteves" ;
echo gettype($a).'<br>' ;
echo gettype($d).'<br>' ;
?>
20
 Por vezes poderá haver necessidade de declarar variáveis
que necessitem de existir durante todo o código (variáveis
globais) ou apenas em certos momentos do código (variáveis
locais). Chama-se a esta propriedade scope.
 Por defeito as variáveis são locais, pelo que não estão
acessíveis em todo o código.
 Por exemplo, uma variável definida dentro de uma função só
existe dentro dessa função e uma variável definida fora de
uma função só existirá fora dela.
21
 Exemplo 1:
<?php
$a=3;
function ver()
{
$b= $a+2;
echo $b;
}
ver(); //resulta o valor 2
echo “<br>”;
echo $a; //resulta o valor 3
echo “<br>”;
echo $b; // não imprime qualquer valor
?>
22
 Notas do Exemplo 1:
23
 O resultado deste exercício parece um pouco estranho. Se dentro
da função existe uma expressão $b=$a+2, deveria resultar $b=3+2,
logo o valor 5.
 Contudo, isso não se verifica, já que a variável $a não é global, não
existindo dentro da função, tomando assim o valor nulo em vez do
valor 3.
 Por outro lado, a variável $b só existe dentro da função, pelo que
fora dela toma o valor nulo não resultando qualquer impressão no
ecrã.
 Para ser possível obter o valor 5, resultado da expressão $b=$a+2, é
necessário declarar a variável $a como global.
 Exemplo 2:
<?php
$a=3;
function ver()
{
GLOBAL $a;
$b= $a+2;
echo $b;
}
ver(); //resulta o valor 5
echo “<br>”;
echo $a; //resulta o valor 3
echo “<br>”;
echo $b; // não imprime qualquer valor
?>
24
 Notas do Exemplo 2:
25
 Ao declararmos a variável $a como global dentro de uma função,
isto é, dentro de onde pretendemos aceder ao seu valor global,
conseguimos que ela tenha o valor anteriormente declarado que é 3.
 No caso da variável $b, que foi impressa fora da função, continua a
não ter valor, pois só existe dentro da função.
 As constantes funcionam de maneira semelhante
as
variáveis, só que o seu valor não pode ser alterado.
 Função define()
Permite definir constantes.
 Sintaxe:
define(CONSTANTE,valor)
 As constantes não utilizam o carácter $ nem podem ser redefinidas.
 Por convenção, as constantes definem-se por maiúsculas.
26
 Exemplos:
 define(TAXA,0.20);
<?php
define(“NOME”,“Susete Esteves”);
echo NOME;
?>
É definida a constante
TAXA com o valor 0.20
É definida
PROFESSORA: SUSETE ESTEVES 27
a constante
NOME com
Susete
Esteves
o valor
PROFESSORA: SUSETE ESTEVES 28
Aritméticos
Exemplo Nome Resultado
$a + $b Adição Soma de $a com $b
$a - $b Subtração Diferença entre $a e $b
$a * $b Multiplicação Produto de $a e $b
$a / $b Divisão Quociente de $a por $b
$a % $b Módulo Resto da divisão de $a por $b
PROFESSORA: SUSETE ESTEVES 29
Relacionais ou comparativos
Exemplo Nome Descrição
$a == $b Igual Verdadeiro (true) se $a é igual a $b
$a != $b Diferente Verdadeiro (true) se $a não é igual a $b
$a > $b Maior Verdadeiro se $a é maior que $b
$a >= $b Maior ou igual Verdadeiro se $a é maior ou igual a $b
$a < $b Menor Verdadeiro se $a é menor que $b
$a <= $b Menor ou igual Verdadeiro se $a é menor ou igual a $b
Incremento e decremento
PROFESSORA: SUSETE ESTEVES 30
Exemplo Nome Efeito
++ $a Pré-incremento Incrementa $a em um, e então retorna $a
-- $a Pré-decremento decrementa $a em um, e então retorna $a
$a ++ Pós-incremento Retorna $a, e então incrementa $a em um
$a -- Pós-decremento Retorna $a, e então decrementa $a em um
Lógicos
PROFESSORA: SUSETE ESTEVES 31
Exemplo Nome Resultado
$a && $b E - AND Verdadeiro se tanto $a quanto $b são verdadeiros
$a || $b OU - OR Verdadeiro se $a ou $b são verdadeiros
! $a NÃO - NOT Verdadeiro se $a não for verdadeiro
 Operador de junção de strings
 Exemplo:
• $nome = “Susete”;
• $sobrenome = “Esteves”;
• echo $nome.” ”.$sobrenome;
Insere um espaço
em branco
32
Operador Significado
. (ponto) Junção de strings
 As estruturas de controlo que vamos estudar em PhP são
idênticas às utilizadas em C, C++ e JS. Começamos pelas
estruturas de decisão if-else e switch-case.
 Estrutura de decisão if-else
(…)
if(condição)
{<bloco de instruções>;}
elseif (condição)
{<bloco de instruções>;}
else
{<bloco de instruções>;}
(…)
33
34
condições impostas.
 Como podemos verificar, a estrutura de controlo em PhP é
ligeiramente diferente da utilizada em JS, devido à condição
adicional elseif que lhe confere maior flexibilidade.
 A estrutura de decisão if-else é utilizada quando
pretendemos executar ações distintas dependendo das
 Exemplo: (if-else)
If ($x==0)
{echo “Número ” .$x;}
elseif ($x==1)
{echo “Número ” .$x;}
else
{echo “Número errado!” ;}
 Neste exemplo testa-se o valor da variável $x.
 No caso de ser 0 imprime no ecrã Número 0.
 No caso de ser 1 imprime no ecrã Número 1.
 Se $x for um valor diferente dos anteriores, a parte executada pelo
programa será else, imprimindo no ecrã Número errado.
35
 Estrutura de seleção switch-case
(…)
switch (expressão) {
case valor 1: <bloco de instruções>; break;
case valor 2: <bloco de instruções>; break;
case valor N: <bloco de instruções>; break;
default: <bloco de instruções>; }
(…)
 Esta estrutura pode ser utilizada nas mesmas circunstâncias da
anterior, embora seja mais indicada para situações onde existam
mais que duas opções. Desta forma, evitam-se encadeamentos
entre o ciclo if e o elseif, que geralmente tornam o código muito
confuso e com erros, quando mal estruturados.
36
 Exemplo: (switch-case)
switch ($x) {
case 25: echo “Idade=“ .$x; break;
case 29: echo “Idade=“ .$x; break;
case 30: echo “Idade=“ .$x; break;
case 34: echo “Idade=“ .$x; break;
default: echo “Idade não definida!”;
}
 Como verificamos no código, apesar de conter várias opções de
decisão, mantém-se percetível e bem estruturado. É de realçar
também a facilidade com que se acrescenta, se necessário, outras
opções a esta estrutura.
37
 Os ciclos servem para repetirmos um pedaço de código
um certo número de vezes.
 Ciclo for
(…)
for (inicialização; condição; incremento)
{
<bloco de instruções>;
}
(…)
38
 Exemplo: (for)
(…)
for ($i=1; $i<=16; $i++)
{
echo “Número” .$i.“<br>”;
}
(…)
 Neste exemplo, será executado um ciclo 16 vezes desde $i=1 até
$i=16 com incrementos de uma unidade $i++ por iteração.
 No final da execução do ciclo for serão impressos todos
os números de 1 a 16 precedidos da palavra Número.
 A impressão será realizada por linha visto existir o código HTML
<br> que força a passagem de linha por cada iteração.
39
 Ciclos while e do-while
 São idênticos ao ciclo for mas não têm contadores (incremento).
Apenas se repetem enquanto se verificar a condição.
 A grande diferença entre os ciclos while e do-while é que o
segundo executa sempre pelo menos uma vez o bloco de
instruções, já que a condição de paragem se situa no final e não no
início como no ciclo while.
(…)
while (condição)
{ <bloco de instruções>; }
(…)
(…)
do
{ <bloco de instruções>; }
while (condição);
(…)
40
 Exemplo: (while)
(…)
$i=1; // Necessário atribuir valor inicial à variável fora do ciclo
while ($i<=16)
{
echo “Número=“ .$i. “<br>” ;
41
$i++; /* Necessário incrementar valor da variável no final de cada
iteração */
}
(…)
 Exemplo: (do-while)
(…)
$i=1; // Necessário atribuir valor inicial à variável fora do ciclo
do {
echo “Número=“ .$i.“<br>” ;
42
$i++; /* Necessário incrementar valor da variável no final de cada
iteração */
}
while ($i<=16);
(…)
 Exemplos: (while e do-while)
43
 Como se pode verificar através destes ciclos é possível obter o
mesmo resultado que o apresentado com o ciclo for. Contudo,
neste caso temos necessidade de declarar a variável $i fora do
ciclo para a iniciarmos com o valor 1, que será o primeiro número a
imprimir.
 Dentro do ciclo somos de novo obrigados, após a instrução de
impressão, a incrementar o valor $i++ ou seria impresso
infinitamente o valor 1.
 Apesar de, neste caso, o exercício ser mais simples com o ciclo for
não quer dizer que apenas devemos usar este último.
 Deverá sempre analisar o seu código e escolher o que se ajustar
melhor ao problema.
 As funções em PhP são semelhantes às apresentadas em
JS.
44
São definidas pela palavra function podendo, receber
ou não parâmetros, bem como, retornar ou não valores.
 A estrutura de uma função apresenta-se da seguinte forma:
(…)
function nome_função($parâmetro1, $parâmetro2, …)
{
<bloco de instruções>; return
[$valor ou expressão];
}
(…)
 As funções permitem que os códigos fiquem mais percetíveis e
menos confusos.
 Além disso, deixa de haver necessidade de repetir um certo
pedaço de código ao longo do programa.
 Em vez de repetirmos o código substituímo-lo por uma função.
 O código pretendido fica dentro da função sendo esta chamada
sempre que necessário, ao programa.
45
 Exemplo 1: Função sem parâmetros
(…)
function alerta()
{
echo “Dados incorretos!”;
}
(…)
 Como já referimos os parâmetros não são obrigatórios.
 Quando uma função não utiliza parâmetros, o conteúdo dos
parênteses fica em branco. Ex: função alerta() anterior.
46
 Exemplo 2: Função que recebe parâmetros
(…)
function soma($valor1, $valor2)
{
$soma_val = $valor1 + $valor2;
return $soma_val;
}
(…)
 A função anterior recebe dois parâmetros, isto é, dois valores que
irá somar.
 O resultado dessa soma será guardado na variável $soma_val que
será retornado para o ponto do código onde a função foi chamada.
47
 Exemplo 1:
<?php
define (“A”, 3);
define (“NOME”, “Maria”);
function ver() {
$b= A+2;
echo $b;
}
ver(); //resulta o valor 5
echo “<br>”;
echo A; //imprime o valor 3
echo “<br>”;
echo NOME; // imprime Maria
?>
 Nota: Ao contrário das variáveis, as constantes estão definidas para
todo o código, não existindo o conceito de constantes globais e locais.
48
 A linguagem PhP é do tipo de programação orientada ao objeto.
Quer isto dizer que nesta linguagem existem um conjunto de
objetos que trocam mensagens entre si.
 Imagine um objeto de nome carro. Sabemos que este objeto é na
realidade a palavra que define um conjunto de 4 rodas, volante
assentos, motor, etc.. Contudo quando viajamos de carro não temos
de pensar em todos os seus componentes para o utilizar.
 Na programação o processo é o mesmo. Temos objetos constituídos
por vários atributos mas que se definem por uma só palavra
tornando-se mais simples para quem os usa.
49
 Os arrays em PhP são idênticos aos utilizados em C e C++. Um
array é um estrutura de dados que pode ser comparada a um
armário com gavetas “infinitas”. As gavetas simbolizam as posições
de um array.
 Em cada gaveta podemos colocar objetos diferentes. Por exemplo,
na primeira colocamos folhas, na segunda parafusos, na terceira
cabos de rede e assim por diante. Sempre que abrirmos uma
gaveta, apenas nos será mostrado o interior dessa gaveta.
 Com os arrays a história é a mesma. Podemos colocar números
inteiros na primeira posição do array, texto na segunda, números
decimais na terceira, etc.. Para acedermos ao conteúdo de uma
posição do array, será suficiente saber qual a sua identificação
numérica.
50
 Criar um array
$nome_do_array = array (conteudo_pos0, conteudo_pos1,
conteudo_pos2, …, conteudo_posN);
 Um array pode misturar no seu conteúdo strings, inteiros, floats, etc.
 Exemplo 1: (correto)
<?php //array com três posições preenchidas
$a=array(10,20,30);
echo $a[0]; //imprime o conteúdo da posição zero do array, ou seja, o nº 10
echo $a[1]; //imprime o conteúdo da posição um do array, ou seja, o nº 20
echo $a[2]; //imprime o conteúdo da posição dois do array, ou seja, o nº 30
?>
51
 Exemplo 1: (errado)
<?php //array com três posições preenchidas
$a=array(10,20,30);
echo $a; //irá aparecer no ecrã a palavra array
?>
 Este erro é muito comum. Ao imprimir um array não é possível
fazê-lo através da instrução echo $a. Como vimos anteriormente
um array é um armário com gavetas.
 A instrução deste exemplo diz para imprimir $a, isto é, o armário e
não as gavetas daí aparecer array escrito no ecrã. Para acedermos
ao conteúdo de um array (às gavetas) é necessário indicar as
posições.
52
 Exemplo 2:
<?php //array com 3 posições preenchidas
$a=array(10,”Joana”,3.5);
echo $a[0]; //imprime o conteúdo da posição zero do array, ou seja, o nº 10
echo $a[1]; //imprime o conteúdo da posição um do array, ou seja, Joana echo
$a[2]; //imprime o conteúdo da posição dois do array, ou seja, o nº 3.5
?>
 Para acrescentar um valor ao array anterior, é necessário adicionar a
seguinte linha de código:
$a[]=600;
 Na posição $a[3] consta agora o valor 600.
53
 Exemplo 3:
54
 Imagine agora um array com 1000 posições preenchidas. Como
imprimir tudo no ecrã?
 É necessário fazer echo de cada uma das posições 1000 vezes? A
resposta é claramente não.
 Podemos utilizar um ciclo for para procedermos à impressão de
todo o array, poupando tempo, trabalho e apresentando uma
programação mais simplificada.
 Exemplo 3: (cont.)
(…)
for ($i=0; $i<1000; $i++) //contador
echo $a[$i]; //imprime todo o conteúdo do array (1000 posições)
(…)
 Este ciclo permite imprimir o conteúdo de um array com 1000
posições.
 Nestes casos é habitual chamar o ciclo for de contador. Esse
contador ($i) será colocado dentro dos parênteses retos $a[$i].
 Desta forma, o valor dentro de parênteses irá variar entre 0 e 999,
ou seja, as 1000 posições do array, imprimindo cada uma delas no
ecrã.
55
 Por vezes, não se sabe o tamanho de um array. Em vez de um valor
fixo, os arrays podem ser variáveis.
 Estas situações ocorrem várias vezes quando um array é
preenchido com informação proveniente de uma base de dados.
 Por exemplo, a turma 11º D conta com 18 alunos este ano, porém
para o ano esse número poderá ser de 17, 20 ou outro qualquer.
 Nos casos anteriores, seria necessário mudar o contador para parar
não em 18, mas em 17 ou 20.
56
 O processo deixaria de ser dinâmico e pouco automatizado.
 Para resolver este problema existe o ciclo foreach, que apenas
pode ser aplicado a arrays.
 O ciclo percorre todas as posições ocupadas do array, imprimindo
por cada iteração, o seu conteúdo.
 O ciclo para quando não existirem mais posições preenchidas com
informação no array.
57
 Ciclo Foreach
foreach($nome_do_array_existente as $nome_escolhido)
 Exemplo: (substitui o ciclo for)
<?php
$a=array(11, 12, 13, 14, 15);
foreach ($a as $valor)
{ echo $nome_escolhido; } //imprime todo o conteúdo do array?>
 Neste exemplo, o array $a de 5 posições foi mapeado, isto é,
copiado para $valor. Cada uma das posições, depois de copiada, é
posteriormente impressa através da instrução echo $valor;
58
 Os arrays associativos em vez de utilizarem
identificadores
numéricos para o acesso às posições do array, utilizam
nomes.
59
 Vamos fazer novamente a analogia com o armário de gavetas.
Neste caso, cada gaveta passa a ter uma etiqueta da parte de fora,
tornando-se mais fácil identificar o que se encontra dentro. Este
tipo de arrays associam uma chave a um valor:
$chave =>$valor
 Criar um array associativo:
$nome_do_array_associativo =
array(“nome_identificador_da_pos0” => conteudo_pos0,
”nome_identificador_da_pos1” => conteudo_pos1, …,
“nome_identifcador_da_posN” => conteudo_posN);
 Exemplo 1: (imprimir o conteúdo de uma posição do array)
<?php
$a=array(“Maria”=>17, “Carlos”=>15, “Joaquim”=>19); /* array
associativo com 3 posições preenchidas */
echo “O Joaquim tem ” .$a[“Joaquim”]. ” anos. ” ; /* imprime O
Joaquim tem 19 anos */
?>
 Neste exemplo apenas foi impresso no ecrã o conteúdo da posição
do array com o nome Joaquim $a[“Joaquim”], isto é, 19.
60
 Exemplo 2: (imprimir todo o array)
echo “Nome: “ .$nome. “ Idade: “ .$idade. “<br>”; /* imprime todo
o conteúdo do array */
?>
 Para imprimirmos todo o array,
Utilizamos um ciclo foreach.
<?php
$a=array(“Maria”=>17, “Carlos”=>15, “Joaquim”=>19);
associativo com 3 posições preenchidas */
foreach($a as $nome => $idade)
/* array
61
 Exemplo 3: (acrescentar um valor ao array)
echo “Nome: “ .$nome. “ Idade: “ .$idade. “<br>”; /* imprime todo o
conteúdo do array */
?>
 Neste exemplo acrescentámos:
$a[“Hugo”]=18;
 Esta nova linha é acrescentada antes
do ciclo foreach para poder ser impressa.
<?php
$a=array(“Maria”=>17, “Carlos”=>15, “Joaquim”=>19);
associativo com 3 posições preenchidas */
$a[“Hugo”]=18;
foreach($a as $nome => $idade)
/* array
62
 Exemplo 4: (errado)
<?php
$a=array(“Maria”=>17, “Carlos”=>15, “Joaquim”=>19); /*array
associativo com 3 posições preenchidas */
foreach($a as $nome)
echo “Nome:“ .$nome.“<br>”; // imprime todas as idades do array
?>
 Neste caso, apenas são impressas as idades
no ecrã e não os nomes.
 É necessário o operador => para completar o
acesso ao array associativo.
63
 Exemplo 5: (errado)
<?php
$a=array(“Maria”=>17, “Carlos”=>15, “Joaquim”=>19); /*array
associativo com 3 posições preenchidas */
for($i=0; $i<2; $i++) // contador
echo $a[$i];
?>
 Um array associativo não pode ser acedido através de posições numéricas
como $a[0]. A primeira posição do array só pode ser acedida por
$a[“Maria”], a segunda por $a[“Carlos”] e assim sucessivamente.
 Concluindo, um ciclo for nunca deverá ser usado para aceder
ao conteúdo de um array associativo.
64

Mais conteúdo relacionado

Mais procurados

Curso completo php
Curso completo phpCurso completo php
Curso completo php
breninho94
 
Curso avançado de c++ em portugues
Curso avançado de c++ em portuguesCurso avançado de c++ em portugues
Curso avançado de c++ em portugues
Laura
 
Curso de php do básico ao avançado
Curso de php do básico ao avançadoCurso de php do básico ao avançado
Curso de php do básico ao avançado
Thiago Carlos
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01
joaocarlobarros
 
Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01
Leandro Rezende
 

Mais procurados (20)

Manual-de-php
Manual-de-phpManual-de-php
Manual-de-php
 
Mini Curso de PHP
Mini Curso de PHPMini Curso de PHP
Mini Curso de PHP
 
Introdução a Linguagem de Programação PHP
Introdução a Linguagem de Programação PHPIntrodução a Linguagem de Programação PHP
Introdução a Linguagem de Programação PHP
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Web
 
Introdução ao PHP
Introdução ao PHPIntrodução ao PHP
Introdução ao PHP
 
Minicurso PHP básico
Minicurso PHP básicoMinicurso PHP básico
Minicurso PHP básico
 
CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1
 
5423 c ou c++
5423 c ou c++5423 c ou c++
5423 c ou c++
 
Lista Exercicios 01
Lista Exercicios 01Lista Exercicios 01
Lista Exercicios 01
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas Condicionais
 
Curso completo php
Curso completo phpCurso completo php
Curso completo php
 
Aula09 traducaosin110
Aula09 traducaosin110Aula09 traducaosin110
Aula09 traducaosin110
 
Curso avançado de c++ em portugues
Curso avançado de c++ em portuguesCurso avançado de c++ em portugues
Curso avançado de c++ em portugues
 
Apresentação Linguagem C
Apresentação Linguagem CApresentação Linguagem C
Apresentação Linguagem C
 
Introdução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites IIIntrodução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites II
 
Curso de php do básico ao avançado
Curso de php do básico ao avançadoCurso de php do básico ao avançado
Curso de php do básico ao avançado
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHP
 
TDC2014 SP - C/C++ - Modularização de Código C
TDC2014 SP - C/C++ - Modularização de Código CTDC2014 SP - C/C++ - Modularização de Código C
TDC2014 SP - C/C++ - Modularização de Código C
 
Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01
 

Semelhante a M5 php rc

Oficina de Web Design Lecom - PHP e JavaScript
Oficina de Web Design Lecom - PHP e JavaScriptOficina de Web Design Lecom - PHP e JavaScript
Oficina de Web Design Lecom - PHP e JavaScript
Raphael Donaire Albino
 
Aula 01 introdução ao php
Aula 01   introdução ao phpAula 01   introdução ao php
Aula 01 introdução ao php
Adriano Castro
 

Semelhante a M5 php rc (20)

PHP GERAL
PHP GERALPHP GERAL
PHP GERAL
 
Slides do cuso_php
Slides do cuso_phpSlides do cuso_php
Slides do cuso_php
 
Php women oficina iniciante de php
Php women   oficina iniciante de phpPhp women   oficina iniciante de php
Php women oficina iniciante de php
 
Módulo de php
Módulo de phpMódulo de php
Módulo de php
 
Oficina de Web Design Lecom - PHP e JavaScript
Oficina de Web Design Lecom - PHP e JavaScriptOficina de Web Design Lecom - PHP e JavaScript
Oficina de Web Design Lecom - PHP e JavaScript
 
PHP(I-Bim).ppt
PHP(I-Bim).pptPHP(I-Bim).ppt
PHP(I-Bim).ppt
 
2ª aula php
2ª aula php2ª aula php
2ª aula php
 
Aula3
Aula3Aula3
Aula3
 
LVI-Aula05
LVI-Aula05LVI-Aula05
LVI-Aula05
 
LVI_Aula05
LVI_Aula05LVI_Aula05
LVI_Aula05
 
Curso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao Avançado
 
Aprendendo PHP.pdf
Aprendendo PHP.pdfAprendendo PHP.pdf
Aprendendo PHP.pdf
 
Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3
 
Oficial
OficialOficial
Oficial
 
Php
PhpPhp
Php
 
Revista programar php -iniciação
Revista programar php -iniciaçãoRevista programar php -iniciação
Revista programar php -iniciação
 
Php
PhpPhp
Php
 
Php
PhpPhp
Php
 
Desenvolvimento de Software I - USBWEBSERVER - PHP
Desenvolvimento de Software I - USBWEBSERVER - PHPDesenvolvimento de Software I - USBWEBSERVER - PHP
Desenvolvimento de Software I - USBWEBSERVER - PHP
 
Aula 01 introdução ao php
Aula 01   introdução ao phpAula 01   introdução ao php
Aula 01 introdução ao php
 

Último

atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
Autonoma
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 
QUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralQUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geral
AntonioVieira539017
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
marlene54545
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 

Último (20)

atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
QUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralQUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geral
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .ppt
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Conflitos entre: ISRAEL E PALESTINA.pdf
Conflitos entre:  ISRAEL E PALESTINA.pdfConflitos entre:  ISRAEL E PALESTINA.pdf
Conflitos entre: ISRAEL E PALESTINA.pdf
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdfAPRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
Renascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDFRenascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDF
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 

M5 php rc

  • 1. Duração: 30 horas (40 aulas de 45 min.) Ano letivo 2019/2020 Professor : José Carlos
  • 2.  Introdução à programação Web em PHP  Scripting do lado do servidor e do lado do cliente  Técnicas básicas de escrita de páginas dinâmicas  Variáveis e estruturas de controlo de execução 2
  • 3.  Um script é um programa constituído por um conjunto de instruções, escritas numa determinada linguagem e dirigidas para uma aplicação que as executa e interpreta.  O PHP é uma linguagem denominada de server-side, enquanto que a linguagem JavaScript é chamada de client-side.  O Apache é um Servidor HTTP que fornece páginas HTML ou ficheiros aos browsers Web. Estas podem ser estáticas ou geradas por um interpretador (ex: PHP) 3
  • 4.  Client-side (ex: JavaScript) • O cliente desempenha a função de processamento. • A função do servidor é somente fornecer os ficheiros solicitados. Cliente Servidor Uma cópia do documento HTML e com possível código não processado é enviada ao cliente Contém o documento HTML requisitado. Recebe a solicitação feita pelo browser O browser é responsável por interpretar o possível código JavaScript 4
  • 5.  Server-side (ex: PHP) • O servidor desempenha a função de processamento. Cliente Servidor Um programa interpreta o script (por ex: PHP) e substitui o código pelo resultado na página HTML. Uma cópia do documento HTML e com possível código já processado é enviada ao cliente 5 O browser “vê” uma página comum, que foi criada instantaneamente no servidor
  • 6.  A linguagem PHP, surgiu com a designação - Personal Home Pages (Rasmus Lerdorf-1995);  Actualmente, PHP surge com o significado de Hypertext Preprocessor;  PHP é uma linguagem de programação de scripts para serem interpretados no lado dos servidores;  O PHP é “incorporado” em documentos HTML; 6
  • 7.  O PHP permite a construção de páginas web com conteúdos dinâmicos.  O facto do PHP ser uma das linguagens do lado do servidor mais utilizadas na web deve- se essencialmente a:  Ser uma tecnologia distribuída gratuitamente;  Ter uma excelente capacidade de articulação com: • Servidores Web – Apache; • Sistemas de gestão de base de dados – MYSQL. 7
  • 8.  Funções de correio electrónico - enviar um e-mail a uma pessoa ou lista parametrizando vários aspectos (e- mail de origem, assunto, pessoa a responder...). Ex.: mail(), mb_send_mail, imap_mail  Gestão de bases de dados - interfaces para o acesso à maioria das bases de dados. Ex.: mysql_create_db, mysql_ field_ len, mysql_ field_ table,… 8
  • 9.  Gestão de ficheiros - criar, apagar, mover, modificar ficheiros. Ex.: zip_open, chdir, scandir, copy, file_exists, ...  Tratamento de Imagens – é possível uniformizar o tamanho e o formato das imagens recebidas num site. Ex.: getimagesize, imagecopy, imagecreate,…  Tratamento de cookies Ex.: setcookie, http_build_cookie,… 9
  • 10.  O servidor HTTP (ex: Apache) reconhece a extensão da página PHP e, antes de enviá-la ao browser, vai encarregar-se de a enviar ao interpretador PHP que vai interpretar e executar tudo aquilo que se encontre dentro das tags <?php Código PHP ?>.  O restante, vai enviá-lo tal qual, visto que assumirá que se trata de código HTML compreensível para o browser. 10
  • 11.  As tags que indicam os scripts de PHP podem ser:  <?php comandos; ?>  <script language="php"> comandos </script>  <? comandos; ?>  <% comandos; %> É o mais utilizado Estes formatos necessitam de estar activados nas definições de configuração do PHP. 11
  • 12.  Uma instrução termina com ponto e vírgula (;);  A instrução echo apresenta a informação no ecrã;  Um bloco de instruções é incluído dentro de chavetas {...};  Comentários de uma linha inserem-se depois do sinal: # ou //  Comentários de várias linhas inserem-se entre os sinais: /* e */ 12
  • 13.  O script de PHP é embutido no código HTML e o ficheiro gravado com a extensão .php;  O ficheiro é colocado na pasta c:xampphtdocs;  Para executar o programa em PHP numa máquina local, basta digitar o endereço: • http://localhost/nomedoficheiro.php Ou • http://127.0.0.1/nomedoficheiro.php 13
  • 14.  Função phpinfo() Abre uma página de informação do PHP.  Exemplo: 14
  • 16.  Variável é uma forma de guardar informações que pode variar no decorrer da execução do script;  Os nomes das variáveis começam sempre com $;  O PHP é case sensitive, isto é, distingue maiúsculas de minúsculas; letras  Exemplo: As variáveis $nome, $Nome, $NOME são diferentes; 16
  • 17.  O PHP não necessita da definição explicita do tipo na declaração de variáveis:  O tipo de uma variável é determinado pelo contexto em que esta é utilizada.  Exemplo: • $var = “olá”; // Variável do tipo String • $var = 1; // Variável do tipo Inteiro 17
  • 18.  O PHP suporta os seguintes tipos de dados: • Boolean (verdadeiro ou falso) • Integer • Float (nº com vírgula flutuante, ou também double) • String (conjunto de caracteres) • Array • Object (pode conter várias variáveis e funções) • Null (correspondente a um valor nulo) 18
  • 19.  Função gettype() Indica o tipo de dados que cada variável assume.  Exemplo: $x=5; echo gettype($x); 19 var_dump ($x);
  • 20.  Exemplo da função gettype() <?php $b = ($x == 10) ; echo gettype($b).'<br>' ; $y = 6 ; echo gettype($y).'<br>' ; $z = 1.5 ; echo gettype($z).'<br>' ; $a = “Susete Esteves" ; echo gettype($a).'<br>' ; echo gettype($d).'<br>' ; ?> 20
  • 21.  Por vezes poderá haver necessidade de declarar variáveis que necessitem de existir durante todo o código (variáveis globais) ou apenas em certos momentos do código (variáveis locais). Chama-se a esta propriedade scope.  Por defeito as variáveis são locais, pelo que não estão acessíveis em todo o código.  Por exemplo, uma variável definida dentro de uma função só existe dentro dessa função e uma variável definida fora de uma função só existirá fora dela. 21
  • 22.  Exemplo 1: <?php $a=3; function ver() { $b= $a+2; echo $b; } ver(); //resulta o valor 2 echo “<br>”; echo $a; //resulta o valor 3 echo “<br>”; echo $b; // não imprime qualquer valor ?> 22
  • 23.  Notas do Exemplo 1: 23  O resultado deste exercício parece um pouco estranho. Se dentro da função existe uma expressão $b=$a+2, deveria resultar $b=3+2, logo o valor 5.  Contudo, isso não se verifica, já que a variável $a não é global, não existindo dentro da função, tomando assim o valor nulo em vez do valor 3.  Por outro lado, a variável $b só existe dentro da função, pelo que fora dela toma o valor nulo não resultando qualquer impressão no ecrã.  Para ser possível obter o valor 5, resultado da expressão $b=$a+2, é necessário declarar a variável $a como global.
  • 24.  Exemplo 2: <?php $a=3; function ver() { GLOBAL $a; $b= $a+2; echo $b; } ver(); //resulta o valor 5 echo “<br>”; echo $a; //resulta o valor 3 echo “<br>”; echo $b; // não imprime qualquer valor ?> 24
  • 25.  Notas do Exemplo 2: 25  Ao declararmos a variável $a como global dentro de uma função, isto é, dentro de onde pretendemos aceder ao seu valor global, conseguimos que ela tenha o valor anteriormente declarado que é 3.  No caso da variável $b, que foi impressa fora da função, continua a não ter valor, pois só existe dentro da função.
  • 26.  As constantes funcionam de maneira semelhante as variáveis, só que o seu valor não pode ser alterado.  Função define() Permite definir constantes.  Sintaxe: define(CONSTANTE,valor)  As constantes não utilizam o carácter $ nem podem ser redefinidas.  Por convenção, as constantes definem-se por maiúsculas. 26
  • 27.  Exemplos:  define(TAXA,0.20); <?php define(“NOME”,“Susete Esteves”); echo NOME; ?> É definida a constante TAXA com o valor 0.20 É definida PROFESSORA: SUSETE ESTEVES 27 a constante NOME com Susete Esteves o valor
  • 28. PROFESSORA: SUSETE ESTEVES 28 Aritméticos Exemplo Nome Resultado $a + $b Adição Soma de $a com $b $a - $b Subtração Diferença entre $a e $b $a * $b Multiplicação Produto de $a e $b $a / $b Divisão Quociente de $a por $b $a % $b Módulo Resto da divisão de $a por $b
  • 29. PROFESSORA: SUSETE ESTEVES 29 Relacionais ou comparativos Exemplo Nome Descrição $a == $b Igual Verdadeiro (true) se $a é igual a $b $a != $b Diferente Verdadeiro (true) se $a não é igual a $b $a > $b Maior Verdadeiro se $a é maior que $b $a >= $b Maior ou igual Verdadeiro se $a é maior ou igual a $b $a < $b Menor Verdadeiro se $a é menor que $b $a <= $b Menor ou igual Verdadeiro se $a é menor ou igual a $b
  • 30. Incremento e decremento PROFESSORA: SUSETE ESTEVES 30 Exemplo Nome Efeito ++ $a Pré-incremento Incrementa $a em um, e então retorna $a -- $a Pré-decremento decrementa $a em um, e então retorna $a $a ++ Pós-incremento Retorna $a, e então incrementa $a em um $a -- Pós-decremento Retorna $a, e então decrementa $a em um
  • 31. Lógicos PROFESSORA: SUSETE ESTEVES 31 Exemplo Nome Resultado $a && $b E - AND Verdadeiro se tanto $a quanto $b são verdadeiros $a || $b OU - OR Verdadeiro se $a ou $b são verdadeiros ! $a NÃO - NOT Verdadeiro se $a não for verdadeiro
  • 32.  Operador de junção de strings  Exemplo: • $nome = “Susete”; • $sobrenome = “Esteves”; • echo $nome.” ”.$sobrenome; Insere um espaço em branco 32 Operador Significado . (ponto) Junção de strings
  • 33.  As estruturas de controlo que vamos estudar em PhP são idênticas às utilizadas em C, C++ e JS. Começamos pelas estruturas de decisão if-else e switch-case.  Estrutura de decisão if-else (…) if(condição) {<bloco de instruções>;} elseif (condição) {<bloco de instruções>;} else {<bloco de instruções>;} (…) 33
  • 34. 34 condições impostas.  Como podemos verificar, a estrutura de controlo em PhP é ligeiramente diferente da utilizada em JS, devido à condição adicional elseif que lhe confere maior flexibilidade.  A estrutura de decisão if-else é utilizada quando pretendemos executar ações distintas dependendo das
  • 35.  Exemplo: (if-else) If ($x==0) {echo “Número ” .$x;} elseif ($x==1) {echo “Número ” .$x;} else {echo “Número errado!” ;}  Neste exemplo testa-se o valor da variável $x.  No caso de ser 0 imprime no ecrã Número 0.  No caso de ser 1 imprime no ecrã Número 1.  Se $x for um valor diferente dos anteriores, a parte executada pelo programa será else, imprimindo no ecrã Número errado. 35
  • 36.  Estrutura de seleção switch-case (…) switch (expressão) { case valor 1: <bloco de instruções>; break; case valor 2: <bloco de instruções>; break; case valor N: <bloco de instruções>; break; default: <bloco de instruções>; } (…)  Esta estrutura pode ser utilizada nas mesmas circunstâncias da anterior, embora seja mais indicada para situações onde existam mais que duas opções. Desta forma, evitam-se encadeamentos entre o ciclo if e o elseif, que geralmente tornam o código muito confuso e com erros, quando mal estruturados. 36
  • 37.  Exemplo: (switch-case) switch ($x) { case 25: echo “Idade=“ .$x; break; case 29: echo “Idade=“ .$x; break; case 30: echo “Idade=“ .$x; break; case 34: echo “Idade=“ .$x; break; default: echo “Idade não definida!”; }  Como verificamos no código, apesar de conter várias opções de decisão, mantém-se percetível e bem estruturado. É de realçar também a facilidade com que se acrescenta, se necessário, outras opções a esta estrutura. 37
  • 38.  Os ciclos servem para repetirmos um pedaço de código um certo número de vezes.  Ciclo for (…) for (inicialização; condição; incremento) { <bloco de instruções>; } (…) 38
  • 39.  Exemplo: (for) (…) for ($i=1; $i<=16; $i++) { echo “Número” .$i.“<br>”; } (…)  Neste exemplo, será executado um ciclo 16 vezes desde $i=1 até $i=16 com incrementos de uma unidade $i++ por iteração.  No final da execução do ciclo for serão impressos todos os números de 1 a 16 precedidos da palavra Número.  A impressão será realizada por linha visto existir o código HTML <br> que força a passagem de linha por cada iteração. 39
  • 40.  Ciclos while e do-while  São idênticos ao ciclo for mas não têm contadores (incremento). Apenas se repetem enquanto se verificar a condição.  A grande diferença entre os ciclos while e do-while é que o segundo executa sempre pelo menos uma vez o bloco de instruções, já que a condição de paragem se situa no final e não no início como no ciclo while. (…) while (condição) { <bloco de instruções>; } (…) (…) do { <bloco de instruções>; } while (condição); (…) 40
  • 41.  Exemplo: (while) (…) $i=1; // Necessário atribuir valor inicial à variável fora do ciclo while ($i<=16) { echo “Número=“ .$i. “<br>” ; 41 $i++; /* Necessário incrementar valor da variável no final de cada iteração */ } (…)
  • 42.  Exemplo: (do-while) (…) $i=1; // Necessário atribuir valor inicial à variável fora do ciclo do { echo “Número=“ .$i.“<br>” ; 42 $i++; /* Necessário incrementar valor da variável no final de cada iteração */ } while ($i<=16); (…)
  • 43.  Exemplos: (while e do-while) 43  Como se pode verificar através destes ciclos é possível obter o mesmo resultado que o apresentado com o ciclo for. Contudo, neste caso temos necessidade de declarar a variável $i fora do ciclo para a iniciarmos com o valor 1, que será o primeiro número a imprimir.  Dentro do ciclo somos de novo obrigados, após a instrução de impressão, a incrementar o valor $i++ ou seria impresso infinitamente o valor 1.  Apesar de, neste caso, o exercício ser mais simples com o ciclo for não quer dizer que apenas devemos usar este último.  Deverá sempre analisar o seu código e escolher o que se ajustar melhor ao problema.
  • 44.  As funções em PhP são semelhantes às apresentadas em JS. 44 São definidas pela palavra function podendo, receber ou não parâmetros, bem como, retornar ou não valores.  A estrutura de uma função apresenta-se da seguinte forma: (…) function nome_função($parâmetro1, $parâmetro2, …) { <bloco de instruções>; return [$valor ou expressão]; } (…)
  • 45.  As funções permitem que os códigos fiquem mais percetíveis e menos confusos.  Além disso, deixa de haver necessidade de repetir um certo pedaço de código ao longo do programa.  Em vez de repetirmos o código substituímo-lo por uma função.  O código pretendido fica dentro da função sendo esta chamada sempre que necessário, ao programa. 45
  • 46.  Exemplo 1: Função sem parâmetros (…) function alerta() { echo “Dados incorretos!”; } (…)  Como já referimos os parâmetros não são obrigatórios.  Quando uma função não utiliza parâmetros, o conteúdo dos parênteses fica em branco. Ex: função alerta() anterior. 46
  • 47.  Exemplo 2: Função que recebe parâmetros (…) function soma($valor1, $valor2) { $soma_val = $valor1 + $valor2; return $soma_val; } (…)  A função anterior recebe dois parâmetros, isto é, dois valores que irá somar.  O resultado dessa soma será guardado na variável $soma_val que será retornado para o ponto do código onde a função foi chamada. 47
  • 48.  Exemplo 1: <?php define (“A”, 3); define (“NOME”, “Maria”); function ver() { $b= A+2; echo $b; } ver(); //resulta o valor 5 echo “<br>”; echo A; //imprime o valor 3 echo “<br>”; echo NOME; // imprime Maria ?>  Nota: Ao contrário das variáveis, as constantes estão definidas para todo o código, não existindo o conceito de constantes globais e locais. 48
  • 49.  A linguagem PhP é do tipo de programação orientada ao objeto. Quer isto dizer que nesta linguagem existem um conjunto de objetos que trocam mensagens entre si.  Imagine um objeto de nome carro. Sabemos que este objeto é na realidade a palavra que define um conjunto de 4 rodas, volante assentos, motor, etc.. Contudo quando viajamos de carro não temos de pensar em todos os seus componentes para o utilizar.  Na programação o processo é o mesmo. Temos objetos constituídos por vários atributos mas que se definem por uma só palavra tornando-se mais simples para quem os usa. 49
  • 50.  Os arrays em PhP são idênticos aos utilizados em C e C++. Um array é um estrutura de dados que pode ser comparada a um armário com gavetas “infinitas”. As gavetas simbolizam as posições de um array.  Em cada gaveta podemos colocar objetos diferentes. Por exemplo, na primeira colocamos folhas, na segunda parafusos, na terceira cabos de rede e assim por diante. Sempre que abrirmos uma gaveta, apenas nos será mostrado o interior dessa gaveta.  Com os arrays a história é a mesma. Podemos colocar números inteiros na primeira posição do array, texto na segunda, números decimais na terceira, etc.. Para acedermos ao conteúdo de uma posição do array, será suficiente saber qual a sua identificação numérica. 50
  • 51.  Criar um array $nome_do_array = array (conteudo_pos0, conteudo_pos1, conteudo_pos2, …, conteudo_posN);  Um array pode misturar no seu conteúdo strings, inteiros, floats, etc.  Exemplo 1: (correto) <?php //array com três posições preenchidas $a=array(10,20,30); echo $a[0]; //imprime o conteúdo da posição zero do array, ou seja, o nº 10 echo $a[1]; //imprime o conteúdo da posição um do array, ou seja, o nº 20 echo $a[2]; //imprime o conteúdo da posição dois do array, ou seja, o nº 30 ?> 51
  • 52.  Exemplo 1: (errado) <?php //array com três posições preenchidas $a=array(10,20,30); echo $a; //irá aparecer no ecrã a palavra array ?>  Este erro é muito comum. Ao imprimir um array não é possível fazê-lo através da instrução echo $a. Como vimos anteriormente um array é um armário com gavetas.  A instrução deste exemplo diz para imprimir $a, isto é, o armário e não as gavetas daí aparecer array escrito no ecrã. Para acedermos ao conteúdo de um array (às gavetas) é necessário indicar as posições. 52
  • 53.  Exemplo 2: <?php //array com 3 posições preenchidas $a=array(10,”Joana”,3.5); echo $a[0]; //imprime o conteúdo da posição zero do array, ou seja, o nº 10 echo $a[1]; //imprime o conteúdo da posição um do array, ou seja, Joana echo $a[2]; //imprime o conteúdo da posição dois do array, ou seja, o nº 3.5 ?>  Para acrescentar um valor ao array anterior, é necessário adicionar a seguinte linha de código: $a[]=600;  Na posição $a[3] consta agora o valor 600. 53
  • 54.  Exemplo 3: 54  Imagine agora um array com 1000 posições preenchidas. Como imprimir tudo no ecrã?  É necessário fazer echo de cada uma das posições 1000 vezes? A resposta é claramente não.  Podemos utilizar um ciclo for para procedermos à impressão de todo o array, poupando tempo, trabalho e apresentando uma programação mais simplificada.
  • 55.  Exemplo 3: (cont.) (…) for ($i=0; $i<1000; $i++) //contador echo $a[$i]; //imprime todo o conteúdo do array (1000 posições) (…)  Este ciclo permite imprimir o conteúdo de um array com 1000 posições.  Nestes casos é habitual chamar o ciclo for de contador. Esse contador ($i) será colocado dentro dos parênteses retos $a[$i].  Desta forma, o valor dentro de parênteses irá variar entre 0 e 999, ou seja, as 1000 posições do array, imprimindo cada uma delas no ecrã. 55
  • 56.  Por vezes, não se sabe o tamanho de um array. Em vez de um valor fixo, os arrays podem ser variáveis.  Estas situações ocorrem várias vezes quando um array é preenchido com informação proveniente de uma base de dados.  Por exemplo, a turma 11º D conta com 18 alunos este ano, porém para o ano esse número poderá ser de 17, 20 ou outro qualquer.  Nos casos anteriores, seria necessário mudar o contador para parar não em 18, mas em 17 ou 20. 56
  • 57.  O processo deixaria de ser dinâmico e pouco automatizado.  Para resolver este problema existe o ciclo foreach, que apenas pode ser aplicado a arrays.  O ciclo percorre todas as posições ocupadas do array, imprimindo por cada iteração, o seu conteúdo.  O ciclo para quando não existirem mais posições preenchidas com informação no array. 57
  • 58.  Ciclo Foreach foreach($nome_do_array_existente as $nome_escolhido)  Exemplo: (substitui o ciclo for) <?php $a=array(11, 12, 13, 14, 15); foreach ($a as $valor) { echo $nome_escolhido; } //imprime todo o conteúdo do array?>  Neste exemplo, o array $a de 5 posições foi mapeado, isto é, copiado para $valor. Cada uma das posições, depois de copiada, é posteriormente impressa através da instrução echo $valor; 58
  • 59.  Os arrays associativos em vez de utilizarem identificadores numéricos para o acesso às posições do array, utilizam nomes. 59  Vamos fazer novamente a analogia com o armário de gavetas. Neste caso, cada gaveta passa a ter uma etiqueta da parte de fora, tornando-se mais fácil identificar o que se encontra dentro. Este tipo de arrays associam uma chave a um valor: $chave =>$valor  Criar um array associativo: $nome_do_array_associativo = array(“nome_identificador_da_pos0” => conteudo_pos0, ”nome_identificador_da_pos1” => conteudo_pos1, …, “nome_identifcador_da_posN” => conteudo_posN);
  • 60.  Exemplo 1: (imprimir o conteúdo de uma posição do array) <?php $a=array(“Maria”=>17, “Carlos”=>15, “Joaquim”=>19); /* array associativo com 3 posições preenchidas */ echo “O Joaquim tem ” .$a[“Joaquim”]. ” anos. ” ; /* imprime O Joaquim tem 19 anos */ ?>  Neste exemplo apenas foi impresso no ecrã o conteúdo da posição do array com o nome Joaquim $a[“Joaquim”], isto é, 19. 60
  • 61.  Exemplo 2: (imprimir todo o array) echo “Nome: “ .$nome. “ Idade: “ .$idade. “<br>”; /* imprime todo o conteúdo do array */ ?>  Para imprimirmos todo o array, Utilizamos um ciclo foreach. <?php $a=array(“Maria”=>17, “Carlos”=>15, “Joaquim”=>19); associativo com 3 posições preenchidas */ foreach($a as $nome => $idade) /* array 61
  • 62.  Exemplo 3: (acrescentar um valor ao array) echo “Nome: “ .$nome. “ Idade: “ .$idade. “<br>”; /* imprime todo o conteúdo do array */ ?>  Neste exemplo acrescentámos: $a[“Hugo”]=18;  Esta nova linha é acrescentada antes do ciclo foreach para poder ser impressa. <?php $a=array(“Maria”=>17, “Carlos”=>15, “Joaquim”=>19); associativo com 3 posições preenchidas */ $a[“Hugo”]=18; foreach($a as $nome => $idade) /* array 62
  • 63.  Exemplo 4: (errado) <?php $a=array(“Maria”=>17, “Carlos”=>15, “Joaquim”=>19); /*array associativo com 3 posições preenchidas */ foreach($a as $nome) echo “Nome:“ .$nome.“<br>”; // imprime todas as idades do array ?>  Neste caso, apenas são impressas as idades no ecrã e não os nomes.  É necessário o operador => para completar o acesso ao array associativo. 63
  • 64.  Exemplo 5: (errado) <?php $a=array(“Maria”=>17, “Carlos”=>15, “Joaquim”=>19); /*array associativo com 3 posições preenchidas */ for($i=0; $i<2; $i++) // contador echo $a[$i]; ?>  Um array associativo não pode ser acedido através de posições numéricas como $a[0]. A primeira posição do array só pode ser acedida por $a[“Maria”], a segunda por $a[“Carlos”] e assim sucessivamente.  Concluindo, um ciclo for nunca deverá ser usado para aceder ao conteúdo de um array associativo. 64