Buscar

LIN_SER_COMP_2020

Prévia do material em texto

Matheus Campos Fernandes
Linguagens de servidor: 
uma abordagem prática 
com PHP
 
	
 
 
 
 
 
Dados Internacionais de Catalogação na Publicação (CIP) 
(Simone M. P. Vieira - CRB 8a/4771) 
Fernandes, Matheus Campos 
Linguagens de servidor : uma abordagem prática com PHP / 
Matheus Campos Fernandes. – São Paulo : Editora Senac São Paulo, 
2021. (Série Universitária) 
Bibliografia. 
e-ISBN 978-65-5536-616-7 (ePub/2021) 
e-ISBN 978-65-5536-617-4 (PDF/2021) 
1. Linguagem de programação 2. PHP (linguagem interpretada) 3. 
Aplicações – Desenvolvimento 4. Aplicativos dinâmicos 5. Sistemas 
para internet I. Título. II. Série. 
21-1323t CDD – 005.13 
BISAC COM051010 
Índice para catálogo sistemático 
1. Linguagem de programação 005.13 
M
at
er
ia
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
. 
 
 
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo. 
LINGUAGENS DE SERVIDOR: 
UMA ABORDAGEM
PRÁTICA COM PHP 
Matheus Campos Fernandes 
 
 
 
 
Administração Regional do Senac no Estado de São Paulo 
Presidente do Conselho Regional 
Abram Szajman 
Diretor do Departamento Regional 
Luiz Francisco de A. Salgado 
Superintendente Universitário e de Desenvolvimento 
Luiz Carlos Dourado 
Editora Senac São Paulo 
Conselho Editorial 
Luiz Francisco de A. Salgado 
Luiz Carlos Dourado 
Darcio Sayad Maia 
Lucila Mara Sbrana Sciotti 
Luís Américo Tousi Botelho 
Gerente/Publisher 
Luís Américo Tousi Botelho (luis.tbotelho@sp.senac.br) 
Coordenação Editorial/Prospecção 
Dolores Crisci Manzano (dolores.cmanzano@sp.senac.br) 
Administrativo 
grupoedsadministrativo@sp.senac.br 
Comercial 
comercial@editorasenacsp.com.br 
Acompanhamento Pedagógico 
Otacília da Paz Pereira 
Designer Educacional 
Diogo Maxwell Santos Felizardo 
Revisão Técnica 
Luiz Fernando Albertin Bono Milan 
Preparação e Revisão de Texto 
Camila Lins 
Projeto Gráfico 
Alexandre Lemes da Silva 
Emília Corrêa Abreu 
Capa 
Antonio Carlos De Angelis 
Editoração Eletrônica 
Sidney Foot Gomes 
Ilustrações 
Sidney Foot Gomes 
Imagens 
Adobe Stock Photos 
E-pub 
Ricardo Diana 
Proibida a reprodução sem autorização expressa. 
Todos os direitos desta edição reservados à 
Editora Senac São Paulo 
Rua 24 de Maio, 208 – 3o andar 
Centro – CEP 01041-000 – São Paulo – SP 
Caixa Postal 1120 – CEP 01032-970 – São Paulo – SP 
Tel. (11) 2187-4450 – Fax (11) 2187-4486 
E-mail: editora@sp.senac.br 
Home page: http://www.livrariasenac.com.br 
© Editora Senac São Paulo, 2021 
M
at
er
ia
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
. 
http://www.livrariasenac.com.br
mailto:editora@sp.senac.br
mailto:grupoedsadministrativo@sp.senac.br
mailto:dolores.cmanzano@sp.senac.br
mailto:luis.tbotelho@sp.senac.br
 
	 	
	 	
 
	 	 	 	 	
	
	 	
	 	 	
	 	 	
	 	 	 	
	 	 	
	
	 	 	 	 	
	
 
 
 
	
	
 
	
	
	 	 	
 
	
	
	 	 	 	 	
	 	 	 	 	
	
	 	 	 	
 
	 	 	
	 	 	
	 	 	 	 	
 
	 	
	
 
 
 
	
	
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo. 
Sumário 
Capítulo 1 
Aplicativos dinâmicos 
para web, 7 
1 Aplicativo estático, 8 
2 Aplicativo dinâmico, 13 
3 Comparação entre as 
abordagens, 16 
4 História do PHP e evolução, 16 
Considerações finais, 18 
Referências, 19 
Capítulo 2 
O PHP como linguagem para 
aplicativos dinâmicos, 21 
1 Principais recursos, 22 
2 Preparando o ambiente, 23 
3 Apresentação da IDE, 24 
4 Primeira aplicação (“Hello World”), 25 
5 A arquitetura cliente-servidor, 28 
Considerações finais, 30 
Referências, 31 
Capítulo 3 
Elementos básicos do PHP – 
parte 1, 33 
1 Variáveis e tipos de dados, 34 
2 Strings, 36 
3 Include e require, 39 
4 Estruturas de condição e laços – 
parte 1 (switch case, for, if, else, 
while), 41 
5 Requisição GET/POST, 45 
Considerações finais, 49 
Referências, 50 
Capítulo 4 
Elementos básicos do PHP – 
parte 2, 51 
1 Arrays, 52 
2 Estruturas de condição e laços – 
parte 2 (foreach), 55 
Considerações finais, 61 
Referências, 62 
Capítulo 5 
Funções em PHP e controle de 
sessões, 63 
1 Funções, 64 
2 Entendendo as sessões, 72 
3 Funções para controle das 
sessões, 73 
4 Cookies, 75 
Considerações finais, 78 
Referências, 78 
Capítulo 6 
Acesso a banco de dados, 79 
1 Conexão de banco com MySQLi, 80 
2 Conexão de banco com PDO, 84 
Considerações finais, 90 
Referências, 91 
Capítulo 7 
Manipulação de arquivos, 93 
1 Lendo e manipulando diretórios, 94 
2 Criando um arquivo com fopen(), 95 
3 Excluindo um arquivo, 98 
4 Movendo um arquivo, 99 
5 Lendo conteúdo de um arquivo, 99 
6 Fazendo upload de um arquivo e 
salvando no servidor, 101 
Considerações finais, 103 
Referências, 104 
Capítulo 8 
Orientação a objetos, 105 
1 Introdução à orientação a 
objetos, 106 
2 Try/catch, 111 
3 Trabalhando com processamento 
de imagens, 114 
Considerações finais, 118 
Referências, 119 
Sobre o autor, 121 
M
at
er
ia
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
. 
7 
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
	
Capítulo 1 
Aplicativos 
dinâmicos para web 
Sites, websites, sítios da internet, portais on-line, aplicações web, 
aplicativos para a web, sistemas web. Todos esses termos foram usa-
dos nos últimos anos para descrever o mesmo conceito. A verdade é 
que, atualmente, os navegadores de internet se tornaram a principal 
forma de consumir software. Para um usuário médio, tudo parece fun-
cionar como mágica, pois o entendimento geral do funcionamento de 
aplicações web é bastante nebuloso. Este capítulo pretende desmisti-
ficar isso. 
Aqui, daremos início aos nossos estudos, a começar pela diferença 
entre as duas abordagens possíveis para o desenvolvimento de solu-
ções web: as abordagens estática e dinâmica. Na sequência, iremos 
apresentar a linguagem que usaremos para explorar e praticar o desen-
volvimento de aplicações dinâmicas: a linguagem PHP. 
8 Linguagens de servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
 
	 	 	 	 	 	 	
 
1 Aplicativo estático 
A web, como conhecemos, surgiu como uma maneira de interligar 
documentos, especificamente documentos armazenados na forma de 
hipertexto. Um hipertexto nada maisé do que um texto que contém 
referências para outros documentos. Essas referências normalmente 
acontecem no formato de links, ou imagens, ou vídeos, etc. 
A forma padrão que se assumiu na web para armazenar esses hiper-
textos foi a hypertext markup language (HTML). Um documento HTML 
é composto pelas chamadas tags, delimitadas entre <>. Um exemplo de 
um documento HTML é dado a seguir: 
<html>
 <head>
 <title>Meu Documento</title>
 </head>
 <body>
 <h1>Cabeçalho principal do meu documento</h1>
 <h2>Cabeçalho secundário do meu documento</h2>
 <p>
 Meu parágrafo contendo um texto extremamente 
grande.
 Para mais informações visite 
<a href="outro_documento.html">este outro 
documento</a>
 </p>
 <img src="cachorro.jpg" alt="Cachorro" />
 </body> 
</html> 
No exemplo, o trecho <title>Meu Documento</title> delimita uma 
ocorrência da tag title, que indica qual o título do documento. Ela come-
ça em <title> e termina em </title>, com o conteúdo sendo o texto “Meu 
Documento”. 
9 Aplicativos dinâmicos para web
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
	 	 	 	 	 	
	 	 	 	 	 	 	 	 	 	
	 	 	 	 	 	 	 	 	 	 	
 
	 	 	 	 	 	 	 	 	 	 	
 
A tag <a href=”outro_documento.html”>este outro documento</a> 
tem o que chamamos de atributo. O atributo em questão é o href, e seu 
valor é outro_documento.html. Esta é uma tag que o texto “este outro 
documento” deve apontar para o documento outro_documento.html, ca-
racterizando um hipertexto. Usualmente, esta tag é tratada como um 
link, que, ao receber um clique, levará o usuário para outro documento. 
A tag <img src=”cachorro.jpg” alt=”Cachorro” /> é uma tag que não 
pode ter conteúdo. Portanto, colocamos o fechamento dentro da pró-
pria tag de abertura, identificado pelo />. Ali temos dois atributos: src, 
indicando qual arquivo esta tag representa, e alt, indicando a descrição 
textual para essa imagem. 
Se pareceu muita informação, fique tranquilo! Não iremos nos prender, 
no momento, à estrutura de um HTML. A especificação dos elementos 
HTML é extensa e será abordada de forma gradual ao longo deste livro. 
PARA SABER MAIS 
Caso você tenha interesse em se familiarizar com os elementos do 
HTML, uma lista didática pode ser acessada na referência das tags 
HTML no portal da W3Schools (W3SCHOOLS, [s. d.]). 
Como vimos, além de apontar para um outro documento HTML e 
para um arquivo de imagem, nosso HTML pode apontar para outros 
tipos de arquivos de texto, assim como vídeos, áudios, binários e qual-
quer outro que você possa imaginar. Em especial, temos dois outros 
arquivos muito importantes que veremos mais adiante: os arquivos de 
Cascading Style Sheets (CSS) e JavaScript (JS). 
Toda a parte de desenhar de forma gráfica esse HTML (processo 
chamado de render) é responsabilidade única do navegador (brow-
ser). A partir dessas informações textuais, o navegador interpreta o 
10 Linguagens de servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
 
documento e o renderiza em tela. Mas como o nosso navegador tem 
acesso a um documento HTML? 
Ao digitarmos um endereço (URL – uniform resource locator), sinali-
zamos para o navegador que queremos “abrir uma página na internet”. 
Esse processo é apenas, a princípio, a transferência (download) de um 
único arquivo HTML, que pode (ou não) indicar arquivos adicionais que 
precisam ser transferidos, gerando uma sequência de transferências. 
Todos esses arquivos, HTML ou de outro tipo, são transferidos usan-
do-se o protocolo de transferência de hipertextos (HTTP – hypertext 
transfer protocol). Esse protocolo indica como o navegador deve pedir 
os documentos ao endereço e foi projetado de forma a facilitar a troca 
de hipertextos, como o próprio nome indica. 
NA PRÁTICA 
Atualmente, é muito comum usarmos HTTPS no lugar de HTTP. A letra 
“S” significa secure (seguro). De forma simples, é uma versão que inte-
gra criptografia de ponta a ponta ao HTTP. Dessa forma, caso um tercei-
ro intercepte a requisição ou a resposta, o conteúdo dela estará “tran-
cado”, podendo apenas ser aberto pelo emissor e/ou pelo destinatário. 
Digamos, por exemplo, que digitamos o endereço “example.com/ 
sobre” na barra de endereço do nosso navegador. Hoje, por conveniên-
cia, o navegador preenche o restante do endereço com “http://”, o que 
resulta em “http://example.com/sobre”, sinalizando que provavelmen-
te queremos transferir um documento de hipertexto desse endereço. 
Então, começa uma espécie de conversa entre o nosso navegador e o 
endereço que digitamos. Essa conversa acontece no formato requisi-
ção e resposta. 
O nosso navegador (chamado de front-end) envia para o endereço 
fornecido uma requisição, como se fosse uma espécie de mensagem 
http://example.com/sobre
https://example.com
11 Aplicativos dinâmicos para web
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
ou pedido, dizendo: “Olá, example! Eu gostaria de acessar o arquivo ‘so-
bre’. Poderia me informar qual o conteúdo dele?”. 
Figura 1 – Exemplo de uma requisição HTTP 
Navegador 
Requisição 
http://example.com 
	 	 	 	 	 	 	
 
 
 
	 	 	 	 	 	 	 	
 
 
	 	 	 	 	 	 	 	 	
	 	 	 	 	 	 	 	 	
Do lado que recebe a requisição, temos também um computador 
(chamado de back-end). Esse computador tem a tarefa de responder 
corretamente à nossa requisição. Existem algumas formas diferentes de 
criar uma resposta, como veremos. 
Em resumo, uma requisição HTTP não é nada mais do que um com-
putador requisitando um documento para outro computador. Para nós, 
usuários, tudo isso é feito de forma transparente ao digitarmos o ende-
reço na barrinha do nosso navegador e apertarmos a tecla “Enter”. 
No computador do back-end, há sempre um programa em execu-
ção, que costumamos chamar de servidor HTTP. Em princípio, a úni-
ca responsabilidade desse programa é ficar aguardando requisições 
e respondê-las adequadamente. A forma mais básica de fazer isso 
é simplesmente olhar em um diretório (pasta) com vários arquivos e 
devolver o arquivo adequado. Aplicações assim são chamadas de apli-
cações estáticas. 
Por exemplo, digamos que o servidor de “example.com” esteja confi-
gurado dessa forma. Quando ele recebe uma requisição para “example. 
com/produtos.html”, basta o servidor olhar no diretório que foi configu-
rado, buscar pelo arquivo “produtos.html” e devolvê-lo. Nesse caso, a 
pessoa que desenvolve o site tem apenas a responsabilidade de escre-
ver um arquivo HTML para cada página e colocá-lo no diretório adequa-
do, e o servidor se encarrega de deixá-las corretamente “no ar”. 
https://example.com
12 Linguagens de servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
	 	 	 	 	 	 	 	 	 	
 
 
 
	 	 	 	 	 	 	 	 	
	 	 	 	 	 	 	
 
NA PRÁTICA 
Dentre os softwares de servidor HTTP mais usados atualmente, pode-
mos citar o Apache e o Nginx. No mundo Windows, também temos o IIS. 
Figura 2 – Exemplo de aplicaçãoestática 
Navegador 
http://example.com/produtos.html 
http://example.com Pasta com arquivos 
Conteúdo do arquivo 
Repare que, nesta abordagem, o website é nada mais do que uma 
interface para interagir com uma pasta em outro computador. Assim, 
se quisermos que alguns dos nossos arquivos fiquem acessíveis de 
qualquer lugar, basta colocá-los em um desses servidores e acessá-los 
simplesmente navegando até o endereço correspondente. 
Um caso especial é pensado para quando a requisição não pede ne-
nhum arquivo em particular, como na requisição “example.com/”. Nesse 
caso, há a convenção de termos um arquivo chamado “index.html”, que 
corresponde a essa “requisição vazia”. O arquivo recebe o nome de index 
(índice) pois era comum que fosse um documento que mostrasse um ín-
dice de todos os arquivos acessíveis, assim como um índice de um livro. 
A imagem a seguir mostra um diagrama exemplificando como fica-
riam nossos endereços diante de determinada disposição de arquivos 
no servidor. Naturalmente, configurações adicionais podem ser realiza-
das no servidor para omitir a extensão “.html”, tornando os endereços 
mais parecidos com aqueles com que estamos acostumados (“http:// 
example.com/sobre”, por exemplo). 
https://example.com/sobre
https://example.com
13 Aplicativos dinâmicos para web
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
 
	 	 	 	 	 	 	 	 	 	 	 	 	 	
Figura 3 – Exemplo da estrutura de uma aplicação estática 
index.html 
Arquivos no servidor 
sobre.html 
index.html 
produto1.html 
produto2.html 
... 
http://example.com/ 
http://example.com/sobre.html 
http://example.com/produtos 
http://example.com/produtos/produto1.html 
http://example.com/produtos/produto2.html 
... 
/ 
produtos/ 
URLs correspondentes 
2 Aplicativo dinâmico 
Há uma limitação na abordagem anterior. No nosso exemplo, tenta-
mos montar uma página de e-commerce para vender produtos on-line. 
Como programadores, teríamos que escrever um HTML para a página ini-
cial, um para cada página “fixa” (como o “sobre”) e um para cada produto. 
Para adicionar um produto novo, teríamos que criar um HTML novo 
para esse produto e atualizar a página principal para listá-lo também. Se 
houvesse uma seção de produtos relacionados, a cada novo produto 
teríamos que revisar todos os outros para checar se esse novo produto 
não se encaixa ali. Alterações em produtos – como mudar preço ou 
título ou mesmo marcar um item como fora de estoque – implicariam 
alterações em todas as páginas em que aquele produto aparece, seja 
na página do próprio produto, seja na página inicial ou nas seções de 
produtos relacionados de outros produtos. Qualquer alteração no layout 
da página, por menor que fosse, teria que ser feita em todos os HTMLs 
14 Linguagens de servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
	 	 	 	 	 	 	 	 	 	 	 	 	
 
existentes. Realizar promoções no site seria uma enorme dor de cabe-
ça, pois teríamos que atualizar o layout para incluir os banners corretos 
e modificar os produtos para refletir o preço novo, além de termos que 
reverter tudo quando a promoção terminasse. E o mais importante de 
tudo: uma página de busca, por exemplo, não poderia existir, pois seria 
impossível criarmos um HTML para cada combinação de busca exis-
tente. Que trabalho, não é mesmo? 
Felizmente, existe uma abordagem que resolve todos esses proble-
mas. Nós simplesmente deixamos o nosso servidor “mais inteligente”, 
tornando-o capaz de gerar esses HTMLs sob demanda. Para isso, é ne-
cessário que o servidor tenha acesso a instruções sobre como mon-
tar esses HTMLs de forma automática. Uma sequência de instruções, 
como você certamente sabe, é um algoritmo, que pode ser escrito em 
uma linguagem de programação. 
IMPORTANTE 
Em termos simples, usamos uma linguagem de programação para ex-
plicar ao nosso servidor como montar o HTML de resposta para cada 
requisição. 
Assim, podemos expressar a nossa página de produtos de forma 
genérica, algo no seguinte sentido, em pseudocódigo: 
<h1>TÍTULO DO PRODUTO</h1> 
<img src="FOTO DO PRODUTO" /> 
SE O PRODUTO ESTIVER EM ESTOQUE:
 <h2>R$ PREÇO DO PRODUTO</h2> 
CASO CONTRARIO
 <h2>O produto não está em estoque</h2> 
<p>DESCRIÇÃO DO PRODUTO</p> 
15 Aplicativos dinâmicos para web
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
	 	 	 	 	 	 	 	 	 	
	 	 	 	 	 	 	 	 	
Quando o servidor receber a requisição para mostrar a página do 
Produto 2, por exemplo, ele simplesmente seguirá as instruções apre-
sentadas para montar o HTML na hora. Em praticamente todos os ca-
sos, as informações sobre os produtos ficam armazenadas em alguma 
forma de banco de dados, que o servidor acessa para preencher as la-
cunas do HTML. 
Figura 4 – Exemplo de uma requisição em uma aplicação dinâmica 
http://example.com/produto/2 
Navegador http://example.com Programa escrito pelo desenvolvedor 
Conteúdo gerado pelo programa 
Note que, naturalmente, podemos misturar as duas abordagens. 
Isso, inclusive, é extremamente comum e acontece em quase todos os 
casos. Embora muitas vezes faça sentido o HTML ser dinâmico, ima-
gens e outros arquivos são quase sempre estáticos, e podemos ter até 
HTMLs inteiramente estáticos, como uma página de “sobre” que con-
tém apenas texto. Os servidores em geral já são preparados para lidar 
com esse tipo de situação. 
A grande maioria das linguagens de programação, para não dizer 
praticamente todas, possui alguma forma de programar uma aplicação 
web dinâmica, como Java, C#, JavaScript, Go, Python, Haskell, Ruby, 
etc. Qualquer linguagem que o leitor possa vir a imaginar provavelmen-
te já foi usada comercialmente para o desenvolvimento de sites em al-
gum projeto. Cada linguagem, naturalmente, apresenta suas vantagens 
e desvantagens. Ao longo deste livro, usaremos a linguagem de pro-
gramação PHP para escrever os programas que serão executados no 
nosso servidor, a qual será apresentada ao final deste capítulo. 
http://example.com/produto/2
16 Linguagens de servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
 
 
 
 
3 Comparação entre as abordagens 
Como pudemos ver, em geral, a abordagem dinâmica é mais pode-
rosa e robusta se comparada à abordagem estática. Mas nem sempre 
é fácil enxergar de maneira simples os motivos disso. Por isso, apresen-
tamos um resumo com as diferenças-chave entre as duas abordagens: 
Quadro 1 – Comparação entre as abordagens estática e dinâmica 
SITES ESTÁTICOS SITES DINÂMICOS 
Não precisam de uma linguagem de programação Dependem de uma linguagem de programação 
Respondem às requisições com arquivos 
pré-armazenados 
Respondem às requisições com arquivos gerados em 
tempo real 
Não conseguem acessar bancos de dados 
Costumam buscar informações em um banco de 
dados para gerar as páginas 
Número fixo de páginas, determinado pela quantidade 
de arquivos no servidor 
Númeropotencialmente infinito de páginas 
Todos os visitantes do site terão acesso à mesma 
versão de determinada página 
Podem fornecer uma versão diferente da página para 
cada situação 
Não é possível reutilizar trechos de HTML (por 
exemplo, para compartilhar cabeçalhos, menus e 
rodapés) 
Podemos dividir os trechos de HTML como bem 
entendermos. Já que as páginas serão geradas, basta 
escrever instruções para incluir um trecho de HTML 
aqui ou ali 
4 História do PHP e evolução 
PHP é um software gratuito e de código aberto usado principalmente 
para o desenvolvimento de aplicações web. Entre 1994 e 1995, Rasmus 
Lerdorf criou e disponibilizou a primeira versão do que ele chamou de 
personal home page tools (PHP-tools, ou ferramentas de página prin-
cipal pessoal, em tradução livre). Aos poucos, a linguagem foi se tor-
nando popular, ganhando novas funcionalidades e se transformando na 
linguagem que hoje está em sua sétima versão e ainda continua com 
17 Aplicativos dinâmicos para web
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
	 	 	 	 	 	 	 	 	 	 	 	
	 	 	 	 	 	 	 	 	
	 	 	 	 	 	 	 	 	 	 	 	
uma comunidade ativa. Com o tempo, a sigla foi ressignificada para se 
tornar o acrônimo recursivo “PHP: Hypertext Preprocessor”. Hoje, PHP 
é a linguagem responsável por aproximadamente 4 de cada 5 websites 
(W3TECHS, [2020b]). 
A linguagem PHP é a base do CMS (content management system, 
ou sistema de gerenciamento de conteúdo) mais usado no mundo: o 
WordPress. Segundo o W3Techs ([2020a]), 38,1% de todos os sites do 
mundo usam o WordPress. Considerando apenas os sites que usam 
CMS, 63,5% usam o WordPress, com o segundo colocado (Shopify) ten-
do apenas 4,6%. 
A principal vantagem da linguagem PHP, que leva à sua adoção tão 
ampla, é ter sido criada especialmente para o desenvolvimento de apli-
cações web. Ou seja, a linguagem não tem a pretensão de ser uma lin-
guagem de programação de propósito geral e foca em prover a expe-
riência mais simples possível para criar um site. Assim, é muito fácil e 
direto obter um site simples, bastando gerar um arquivo com a extensão 
“.php” para cada página. Esse arquivo tem uma sintaxe parecida com o 
exemplo dado anteriormente (pseudocódigo no tópico “Aplicativo dinâ-
mico”), pois um arquivo PHP consiste em basicamente HTML com “en-
xertos” de programação. A sintaxe específica da linguagem será abor-
dada em profundidade ao longo do livro. 
Embora tenha surgido como uma linguagem bastante simples, o 
PHP evoluiu para adotar o paradigma orientado a objetos e tem mos-
trado sinais de adoção do paradigma funcional, permitindo a criação de 
arquiteturas de software cada vez mais complexas. Em especial, houve 
um salto notável de desempenho entre as versões 5.x e 7.x (a versão 
6 do PHP nunca foi lançada oficialmente). A adoção cada vez maior 
da linguagem também se deve ao surgimento de frameworks como 
CakePHP, CodeIgniter e Laravel, que tornaram bem mais fácil o desen-
volvimento de sistemas web robustos. 
18 Linguagens de servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
. 
 
	 	 	 	 	 	 	 	 	 	
	 	 	 	 	 	 	 	 	 	
 
 
 
PARA SABER MAIS 
Mais informações sobre a história do PHP podem ser encontradas na 
página comemorativa dos 25 anos da linguagem, no site da Jet Brains 
(JET BRAINS, [2020]). 
Neste livro, não focaremos em um framework ou CMS específico. 
Aqui, o intuito é aprender os fundamentos da programação de servido-
res em geral, e para isso utilizaremos a linguagem PHP de forma “pura”, 
como ferramenta. A ideia é que os assuntos abordados possam ser 
facilmente transportados para qualquer linguagem de programação. 
Evidentemente, para tanto, será necessário aprender também os fun-
damentos da linguagem PHP, quase como uma consequência. Então, 
caso você tenha interesse em continuar os estudos de PHP, este livro 
também proverá bagagem suficiente para prepará-lo para a busca de 
mais informações sobre os frameworks de preferência, seja em docu-
mentações, seja em blogs, tutoriais na internet ou mesmo outros livros. 
Considerações finais 
Este capítulo apresentou uma visão geral de como uma aplicação 
web funciona. 
Aprendemos como um documento é representado na web e como um 
navegador obtém esse documento ao se comunicar com um servidor. 
Vimos que uma possível abordagem para o servidor responder a 
uma requisição é simplesmente através de uma estrutura de pastas 
contendo arquivos, nas quais o servidor busca o arquivo que correspon-
de à requisição feita. 
Notamos que essa abordagem, embora simples, é limitada. 
Concluímos que, para resolver essa questão, teríamos que instruir o 
19 Aplicativos dinâmicos para web
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
	 	 	 	 	 	 	 	 	 	 	
 
 
 
nosso servidor sobre a maneira de montar uma resposta, e para isso 
temos que fazer uso de alguma linguagem de programação. 
Por fim, apresentamos a linguagem que usaremos ao longo do curso: 
o PHP, responsável pela maior parte das aplicações web da atualidade. 
Referências 
JET BRAINS. 25 years of PHP History. Jet Brains, [2020]. Disponível em: https:// 
www.jetbrains.com/lp/php-25/. Acesso em: 18 ago. 2020. 
W3SCHOOLS. HTML Element Reference. W3Schools, [2020]. Disponível em:
 https://www.w3schools.com/TAGS/default.ASP. Acesso em: 18 ago. 2020. 
W3TECHS. Usage statistics of content management systems. W3Techs, 
[2020a]. Disponível em: https://w3techs.com/technologies/overview/content_ 
management. Acesso em: 18 ago. 2020. 
W3TECHS. Usage statistics of server-side programming languages for web-
sites. W3Techs, [2020b]. Disponível em: https://w3techs.com/technologies/ 
overview/programming_language. Acesso em: 18 ago. 2020. 
https://w3techs.com/technologies
https://w3techs.com/technologies/overview/content
https://www.w3schools.com/TAGS/default.ASP
www.jetbrains.com/lp/php-25
21 
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
Capítulo 2 
O PHP como 
linguagem para 
aplicativos 
dinâmicos 
No capítulo anterior, aprendemos como funcionam servidores, apli-
cações estáticas e dinâmicas. Também vimos que uma das linguagens 
mais utilizadas no mercado para aplicações web dinâmicas é o PHP. 
Neste capítulo, aprenderemos a configurar e executar nosso próprio 
servidor, no conforto de nosso computador pessoal, juntamente com 
um banco de dados apropriado e com o interpretador da linguagem 
PHP. Revisitaremos alguns conceitos do capítulo anterior, mas aplica-
dos ao ambiente prático em questão. 
Por fim, e mais importante de tudo, daremos vida ao nosso primeiro 
website dinâmico, o famoso “Olá mundo”! 
22 Linguagens de servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
 
 
1 Principais recursos 
Vamosconhecer as ferramentas que farão parte do nosso ambiente 
de desenvolvimento. Como comentamos no último capítulo, usaremos 
a linguagem de programação PHP. Aqui usaremos a versão 7.2 do PHP, 
mas se versões 7.x mais atuais estiverem disponíveis, não deve haver 
muita diferença entre elas. 
Como também discutimos no último capítulo, precisaremos de um 
software chamado servidor para receber as requisições e executar nos-
so código PHP. O servidor que usaremos neste curso será o Apache, que 
é um servidor web livre e está entre os mais utilizados na atualidade. 
Uma das funções principais que nosso website precisará realizar 
será consultar um banco de dados. Por exemplo, se quisermos mos-
trar os resultados de uma busca por produtos, precisaremos acessar o 
banco de dados de produtos e encontrar todos os produtos cujo nome 
corresponda ao termo digitado pelo usuário. Neste livro, utilizaremos o 
MySQL como nosso sistema gerenciador de banco de dados. 
Além disso, existe uma ferramenta chamada phpMyAdmin, que é 
simplesmente uma interface gráfica do MySQL construída com PHP. 
Usaremos essa interface para interagir com nosso banco de dados, tan-
to de forma gráfica quanto através de consultas SQL (queries). 
Ao usuário, pode parecer que será trabalhoso instalarmos tudo isso. 
Afinal, teremos que instalar o Apache, o MySQL, o PHP e, ainda, de algu-
ma forma, o phpMyAdmin, correto? Bem, temos uma boa notícia: esses 
programas são tão comumente utilizados em conjunto que existem ver-
sões “empacotadas” de todos eles, de modo que tudo pode ser instala-
do de uma só vez. 
No próximo tópico, focaremos na instalação para o ambiente 
Windows. Esse conjunto de software é conhecido na internet como 
23 O PHP como linguagem para aplicativos dinâmicos
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
 
 
WAMP (Windows + Apache + MySQL + PHP). Aqui, utilizaremos uma 
variação portátil chamada UwAmp, que pode ser até executada a partir 
de pen drives. 
Caso o usuário esteja em um MacOS, recomenda-se a versão gratui-
ta do software MAMP (você consegue deduzir o que significa a sigla?), 
que pode ser facilmente encontrada em uma busca rápida pela web. 
Se você está em um ambiente Linux, recomenda-se o software 
XAMPP. O “X” indica que há versões para todos os sistemas operacio-
nais (SOs), e o “P” extra ao fim refere-se à linguagem Perl. Essa opção 
não foi recomendada para os outros casos pois o banco de dados uti-
lizado é o MariaDB, em vez do MySQL. Os dois são semelhantes, mas 
podem ser encontradas algumas diferenças em certos passos. Se você 
se sentir mais confortável, basta fazer uma busca rápida por “LAMP 
install” no seu motor de busca e encontrará tutoriais para a instalação 
separada dos componentes nas inúmeras distros Linux que temos por 
aí. Uma alternativa mais avançada, se assim você preferir, é o uso de 
máquinas virtuais ou até mesmo containers que tragam todo o ambien-
te pré-instalado (com o uso de tecnologias como Docker). 
2 Preparando o ambiente 
O instalador do UwAmp pode ser encontrado na área de downloads 
de seu portal oficial. Ao entrar no site, há uma seção “Download”, na 
qual pode-se encontrar a seção “Last version”. Basta clicar no botão 
“Download Rar” ou “Download Zip”, aguardar o download e descompac-
tar o arquivo na pasta que lhe for mais conveniente. 
 
 
 
Figura 1 – Localização dos links para download do UwWamp 
Fonte: UwAMP ([2020]). 
3 Apresentação da IDE 
Como software de edição de códigos, usaremos o Visual Studio Code 
(VSCode), que é gratuito, multiplataforma e de fácil instalação. Ele pode 
ser encontrado em seu portal oficial (VISUAL STUDIO CODE, [s. d.]). 
Uma vez instalado, abra o VSCode e clique em “File > Open Folder”. 
Abra a pasta “www”, que se encontra dentro da pasta descompactada 
do UwAmp. À esquerda, devem aparecer o diretório “my-app” e o arquivo 
“index.php”. O diretório “my-app” pode ser removido, e o conteúdo do ar-
quivo “index.php” pode ser apagado, mas não há necessidade de apagar 
o arquivo em si. 
Linguagens de servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
. 
24 
 
 
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo. 
4 Primeira aplicação (“Hello world”) 
Vamos escrever o seguinte no arquivo “index.php”: 
<h1>Olá mundo</h1> 
Se acessarmos a URL “http://localhost” no nosso navegador, tere-
mos o seguinte resultado: 
Figura 2 – Nossa primeira aplicação 
IMPORTANTE 
Já aprendemos algo sobre PHP: arquivos .php podem conter tags 
HTML, como se fossem simplesmente um arquivo .html. Assim, todo 
arquivo .html poderia ser um arquivo .php válido, mas nem todo arquivo 
.php é um arquivo .html válido. 
Clique com o botão direito na página e selecione “Exibir código-fonte 
da página”. Você verá exatamente o mesmo HTML que digitamos no 
arquivo “index.php”. No entanto, o navegador está fazendo um pouco 
mais do que parece. Volte para a página, clique com o botão direito e se-
lecione “Inspecionar elemento”. Irá se abrir um pequeno painel, provavel-
mente à direita, chamado “Console de desenvolvedor”. Um atalho mais 
O PHP como linguagem para aplicativos dinâmicos 25 
http://localhost
26 Linguagens de servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
 
 
 
 
 
rápido para abrir esse console costuma ser F12, mas isso pode variar 
dependendo do seu navegador. Daqui para frente, sempre que usarmos 
a expressão “abra o console”, estaremos nos referindo a essa ação. 
Uma vez que o console esteja aberto, podemos ver que na aba 
“Elements” (já vem selecionada por padrão) temos muito mais do que 
apenas o nosso h1. Na verdade, o conteúdo deve ser algo parecido com 
o seguinte: 
<html> 
<head></head> 
<body> 
<h1>Olá mundo</h1> 
</body> 
</html> 
IMPORTANTE 
Aqui temos mais uma lição, desta vez sobre HTML: todo HTML deve 
conter, na raiz, uma tag <html>, seguida por um <head> e um <body>, 
mesmo que vazios. 
O que aconteceu então? Bem, o navegador é esperto e pensou o se-
guinte: “Ora, eu recebi um HTML inválido, pois ele não tem a estrutura 
correta. No entanto, como é só um <h1>, eu acho que o programador 
queria colocar este <h1> dentro do <body> e deixar o <head> vazio”. 
Essa foi uma dedução correta por parte do navegador. No entanto, 
não é uma boa prática distribuir HTML inválido pela internet. Vamos cor-
rigir isso simplesmente copiando a estrutura do trecho de código ante-
rior e colando no nosso arquivo. Assim, deixamos igual o que enviamos 
do servidor e o que o navegador vai entender, sem precisar que haja um 
27 O PHP como linguagem para aplicativos dinâmicos
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
 
esforço a mais de nenhuma das partes. O resultado visual deveser o 
mesmo antes e depois das modificações. 
Vamos fazer o nosso site executar alguma ação? Por exemplo, mos-
trar a data e hora atuais. 
Após o <h1>Olá mundo</h1>, escreva o seguinte: 
<p>Hoje é <?php echo date("d/m/Y H:i:s") ?></p> 
Ao abrirmos o localhost, veremos uma mensagem dizendo qual a 
data e hora atual. É possível que o relógio esteja adiantado em algumas 
horas, devido ao fato de o fuso horário do servidor vir, por padrão, no 
GMT. Mas como isso aconteceu? 
Repare que temos uma construção ali que nunca vimos: o trecho 
<?php ... ?>. Esse trecho indica que, após o <?php, sairemos do “am-
biente” HTML e entraremos no “ambiente” PHP. Quando temos um ?>, 
voltamos normalmente ao “ambiente” HTML. Dentro desses trechos de 
PHP, podemos escrever o código que quisermos. Veremos, ao longo do 
livro, como encaixar programas inteiros nessas marcações. 
O comando que usamos foi o echo, seguido de uma chamada para a 
função date(“d/m/Y H:i:s”). O echo é o equivalente ao comando de print 
das outras linguagens, ou seja, ele pega o resultado da expressão à di-
reita e exibe ali mesmo. No caso em questão, ele irá colocar o resultado 
de date(“d/m/Y H:i:s”) após o “é” e antes do fechamento da tag <p>. 
O resultado da função date é a data e hora atual, seguindo a for-
matação que é recebida por parâmetro. Em outras palavras, o trecho 
d/m/Y H:i:s indica o formato no qual queremos mostrar a data. Tente, 
por exemplo, remover o d/m/Y ou o H:i:s e veja o que acontece. 
28 Linguagens de servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
 
 
 
 
 
PARA SABER MAIS 
Se tiver curiosidade quanto aos códigos de formatação disponíveis, 
consulte as funções de data e hora no manual da PHP (PHP, [2020]). 
Tente mudar o formato de data para o padrão americano, com o mês 
antes do dia. 
NA PRÁTICA 
Também podemos realizar cálculos no PHP. Por exemplo: <?php echo 
42 + 5?>. Sabendo que temos disponíveis todas as quatro operações 
aritméticas básicas e usando o comando date e os caracteres de forma-
tação apropriados, tente fazer o PHP calcular e mostrar quantos anos 
você tem ou terá este ano. 
Então, em termos simples, abrimos um trecho de PHP e instruímos 
que queremos mostrar a data com dia, mês, ano, hora, minutos e segun-
dos. Quando o servidor receber a requisição, ele fará exatamente isso. 
No tópico seguinte, deixaremos clara a separação entre cliente e servi-
dor, que pode ser um pouco confusa em um desenvolvimento local. 
5 A arquitetura cliente-servidor 
Durante o desenvolvimento, estaremos em uma posição bastante pe-
culiar, pois a máquina em que iremos trabalhar estará funcionando tanto 
como servidor quanto como cliente. Por isso, é bom deixar claro quan-
do temos que pensar como cliente e quando temos que pensar como 
servidor. 
Quando digitamos o endereço “localhost” no navegador, ele dispa-
ra uma requisição para esse endereço. Essa requisição agora está nas 
29 O PHP como linguagem para aplicativos dinâmicos
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
 
 
mãos do nosso sistema operacional, para encontrar quem é “localhost” 
e, se necessário, disparar a requisição pela internet. 
Seguindo as regras que foram padronizadas mundialmente (o pro-
tocolo de internet, ou internet protocol – IP), o nosso SO decide que 
“localhost” é o servidor que está rodando na nossa própria máquina e 
tenta acessá-lo. Como estamos com o nosso UwAmp em execução, o 
SO encontra um servidor ali e entrega a requisição para ele. Agora, essa 
requisição é responsabilidade do servidor: o Apache. 
O Apache identifica que se trata de uma requisição para o arquivo 
raiz, já que não temos nada depois da barra (como “localhost/produtos. 
php”). Logo, o arquivo “index.php” é que contém as instruções para mon-
tar a resposta, então o Apache o executa. 
O interpretador PHP lê o arquivo “index.php” e chama as funcionali-
dades necessárias, resultando em um único HTML final, sem qualquer 
resquício de PHP. 
Assim, o PHP repassa esse HTML para o Apache, que devolve para 
o SO, que devolve para o navegador, que por sua vez faz a interpretação 
do HTML. Por fim, o navegador desenha na tela o resultado da interpre-
tação do HTML, mostrando o que vimos anteriormente. 
Figura 3 – Exemplo do caminho de uma requisição 
Requisição Requisição index.php 
Navegador SO Apache PHP 
Resposta Resposta HTML 
Como pudemos ver, embora estejamos executando tanto o cliente 
(navegador) quanto o servidor (Apache) na mesma máquina, o meio-
-campo é feito pelo SO. Assim, o navegador não faz ideia de que está 
30 Linguagens de servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
 
 
 
 
 
 
 
 
falando com o computador local, e o servidor também não sabe que a 
requisição veio do mesmo computador em que está rodando. É como se 
você enviasse uma carta pelo correio para o seu irmão no quarto ao lado, 
sem que nenhum de vocês soubesse onde o outro está. Para cada um 
dos lados envolvidos, o outro lado é uma entidade remota, não tendo a 
mínima importância a localização geográfica: o mesmo computador, um 
computador ali na esquina ou do outro lado do planeta. 
Para finalizar, um aviso importante: antes de acompanhar cada ca-
pítulo deste livro, certifique-se sempre de que o UwAmp está aberto e 
de que o servidor Apache está em execução. Se o SO não encontrar o 
Apache em execução, o circuito será quebrado e a aplicação PHP não 
terá como ser executada, o que fará um erro aparecer no navegador. 
Nos próximos capítulos, as instruções de inicialização do servidor serão 
sempre omitidas. 
NA PRÁTICA 
Agora que sabemos de tudo isso, pense sobre a seguinte questão: por 
que o relógio na nossa página não é atualizado em tempo real (atuali-
zando, por exemplo, os segundos conforme eles passam)? Seria possí-
vel fazer algo desse tipo? Se sim, como? 
Considerações finais 
Neste capítulo, preparamos nosso computador para colocar a mão 
na massa! Instalamos e configuramos o UwAmp, que contém o servidor 
HTTP Apache, o interpretador do PHP e um banco de dados MySQL. 
Além disso, já fizemos nossa primeira aplicação, a “Olá mundo”, e 
inclusive conseguimos mostrar a data atual. Assim, pudemos ver como 
é simples o processo de escrever nossa aplicação em PHP: basta 
31 O PHP como linguagem para aplicativos dinâmicos
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
escrever o HTML normalmente e colocar trechos de código apenas 
quando necessário. Nos próximos capítulos, aprenderemos mais sobre 
como funciona a linguagem PHP e como podemos usar seus coman-
dos para criar aplicações cada vez mais complexas. 
Referências 
PHP. Date. [2020]. Disponível em: https://www.php.net/manual/pt_BR/function. 
date.php. Acesso em: 14 jun. 2020. 
UWAMP. Download. [2020]. Disponível em: https://www.uwamp.com/en/? 
page=download. Acesso em: 14 jun. 2020. 
VISUAL STUDIO CODE. Download. [s. d.].Disponível em: https://code. 
visualstudio.com/. Acesso em: 14 jun. 2020. 
https://visualstudio.com
https://code
https://www.uwamp.com/en
https://www.php.net/manual/pt_BR/function
33 
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
Capítulo 3 
Elementos básicos 
do PHP – parte 1 
No último capítulo, aprendemos a criar nossa aplicação PHP. 
Entendemos na prática como podemos escrever um simples arquivo 
.php e que, automaticamente, o servidor saberá como se comportar na 
hora de gerar uma resposta em HTML. 
Neste capítulo, veremos como funcionam as principais estruturas 
para escrevermos algoritmos em PHP. Inclusive, temos uma boa notí-
cia: se você está acostumado com programação imperativa, em espe-
cial com o paradigma estruturado, se sentirá complemente em casa. 
Devemos isso principalmente ao fato de o PHP ser uma linguagem for-
temente inspirada em linguagens como C, assim como praticamente 
todas as outras linguagens estruturadas. 
34 Linguagens de servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
 
 
 
 
 
 
 
 
 
 
 
 
1 Variáveis e tipos de dados 
Variáveis podem ser enxergadas como caixas que guardam valo-
res. Elas têm esse nome pois, uma vez criadas, podemos trocar (va-
riar) o valor que guardamos nessa “caixa” quantas vezes quisermos. 
Para criar uma variável em PHP, basta prefixar o seu nome com o sím-
bolo de cifrão ($). Por exemplo: para armazenar uma idade, criaríamos 
a variável $idade. 
No entanto, uma caixa vazia é de pouca utilidade. O ato de preencher 
essa caixa com algum valor concreto é o que chamamos de atribuir um 
valor a uma variável. Para isso, fazemos uso do operador de atribuição: o 
sinal =. Assim, se quisermos guardar em uma variável a idade de alguém 
que tenha 20 anos, podemos escrever o seguinte trecho de código: 
<?php $idade = 20 ?> 
Em relação a nomes de variáveis, note que o PHP é uma linguagem 
case-sensitive, ou seja, que diferencia maiúsculas e minúsculas. 
IMPORTANTE 
As variáveis $idade, $Idade, $IDADE e $iDAdE serão todas tratadas como 
completamente diferentes. É recomendável, no entanto, que o progra-
mador sempre utilize letras minúsculas e evite o uso de acentuações e 
caracteres especiais. 
Podemos perceber também que em nenhum momento contamos para 
o PHP que nossa variável $idade irá armazenar um número. Isso aconte-
ce pois a PHP é uma linguagem dinamicamente tipada, isto é, nela uma 
variável pode guardar qualquer tipo de dado e, inclusive, guardar tipos de 
dados diferentes durante sua existência. Mas quais são os tipos de dados 
35 Elementos básicos do PHP – parte 1
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
 
que temos em PHP? Bem, no nosso caso temos o tipo numérico, que são 
números inteiros ou reais, positivos ou negativos, decimais, octais ou hexa-
decimais. Veja, no quadro 1, alguns exemplos de dados numéricos: 
Quadro 1 – Exemplos de dados numéricos 
DADO DESCRIÇÃO 
5 Valor inteiro na base decimal. 
4.012 Valor real (ponto flutuante) com três casas decimais. 
.14 
Valor real com 2 casas decimais. É equivalente a 0.14. Quando o número é iniciado com um 
ponto, assume-se que o 0 seria o algarismo inicial. 
033 Valor inteiro na base octal. Todo número que inicia com 0 é tratado como de base 8. 
0xBC 
Valor inteiro na base hexadecimal. Todo valor iniciado com 0x é tratado como um valor 
hexadecimal. 
4.3E+7 Um número real grande. Equivale ao valor 43.000.000 (43 milhões) 
Fonte: adaptado de Niederauer (2017). 
NA PRÁTICA 
Ao longo deste livro, e provavelmente da sua carreira como desenvol-
vedor PHP, você usará bem mais as notações dos dois primeiros exem-
plos do quadro e ocasionalmente o terceiro exemplo. O restante das 
notações é usado com muita raridade e em circunstâncias pouco co-
muns durante o desenvolvimento web, mas é sempre bom saber que 
elas existem. 
Os tipos numéricos permitem o uso de alguns operadores arit-
méticos, como soma (+), subtração (-), multiplicação (*) e divisão (/). 
Também há o operador de resto da divisão inteira, ou módulo (%). A 
36 Linguagens de servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
 
 
seguir, temos alguns exemplos desses operadores em uso, com os res-
pectivos resultados comentados: 
<?php 
$idade = 20; 
$idade_daqui_cinco = $idade + 5; // 25 
$ano_nascimento = 2020 - $idade; // 2000 
$total_de_pedacos_de_bolo = $idade * 8; //160 = 8 pedaços 
por aniversário 
$decadas = $idade/10; // 2 décadas 
$anos_desde_multiplo_de_9 = $idade % 9 // 2, pois fez 18 
(9*2) há 2 anos 
?> 
IMPORTANTE 
Note que aqui colocamos o sinal “;” ao final de cada linha do código. 
Quando nosso código PHP tiver mais de um comando, sempre é neces-
sário finalizar cada um deles com esse sinal. Se o nosso código tiver 
apenas um comando, o uso de ponto e vírgula se torna opcional. 
Dados numéricos são excelentes para representar valores que usa-
remos para realizar cálculos. No entanto, nem todos os dados que preci-
saremos manipular no nosso programa são números. Também é muito 
importante que possamos manipular texto. Assim, além dos tipos nu-
méricos, temos também as variáveis alfanuméricas: as strings. 
2 Strings 
Strings são cadeias de caracteres (ou sequências de caracteres, se 
preferir). Elas são sempre delimitadas por aspas (") ou apóstrofos ('), por 
vezes chamados erroneamente de “aspas duplas” e “aspas simples”. 
Veja os exemplos: 
37 Elementos básicos do PHP – parte 1
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
<?php 
$nome = "João da Silva"; 
$mensagem = 'Seja bem-vindo(a)'; 
?> 
Conforme comentamos, diferentemente dos números, as strings 
não são adequadas para cálculos, sendo mais usadas para representar 
textos em geral, como nomes, títulos e mensagens. Que tipo de opera-
ção poderíamos querer realizar com strings então? 
A resposta deve vir naturalmente para quem é mais experiente em 
programação: a concatenação de strings. Concatenação é o nome que 
damos à operação de juntar, grudar ou colar um texto em outro. No PHP, 
temos o operador de concatenação na forma do símbolo de ponto (.). 
Por exemplo: 
<?php 
$nome = "João da Silva"; 
$mensagem = 'Seja bem-vindo(a)'; 
$mensagem_final = $mensagem . ', ' . $nome; // 'Seja bem-
vindo(a), João da Silva' 
?> 
Note que, se concatenássemos apenas $mensagem . $nome, tería-
mos a mensagem final incorreta: “Seja bem-vindo(a)João da Silva”, sem 
vírgula ou espaço entre a mensagem e o nome. Por isso, foi necessário 
usar uma string intermediária para que a concatenação resultasse em 
algo mais amigável para seres humanos. No entanto, o PHP nos fornece 
uma maneira mais prática de fazer esse tipo de operação: a interpola-
ção. Veja o exemplo: 
38 Linguagensde servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
 
 
 
<?php 
$nome = "João da Silva"; 
$mensagem = 'Seja bem-vindo(a)'; 
$mensagem_final = "$mensagem, $nome"; // 'Seja bem-
vindo(a), João da Silva' 
?> 
Repare bem: bastou colocarmos as variáveis $mensagem e $nome 
como parte do texto de $mensagem_final que o PHP já entendeu que 
devia encaixar os seus valores ali. Note, no entanto, que essa operação 
só é permitida pois usamos aspas, e não apóstrofos. Em outras pala-
vras, sempre que o PHP encontrar uma string com aspas, ele irá procu-
rar e realizar a substituição de variáveis (interpolação), enquanto que 
em uma string com apóstrofos isso não é realizado. Nesse caso, es-
tritamente falando, o ideal seria a variável $nome usar apóstrofos, pois 
estamos informando ao PHP para procurar variáveis na string João da 
Silva, sendo que ele certamente não irá encontrar nenhuma, pois não 
era nossa intenção. 
PARA SABER MAIS 
É importante ressaltar que, devido à natureza fracamente tipada do PHP, 
podemos usar operações de strings em números e vice-versa. Em espe-
cial, se fizermos “5” + “5”, teremos o valor 10, pois o PHP irá realizar a 
conversão automaticamente. Essa conversão, em versões mais antigas, 
pode falhar silenciosamente e gerar resultados questionáveis, como no 
exemplo “João 5” + “5 quilômetros”, que será interpretado como 0 + 5, 
ou seja, 5. A partir da versão 7.1 do PHP, esse problema foi corrigido. 
O inverso também é verdade, embora seja, em geral, menos problemáti-
co. Podemos fazer, por exemplo, (10*4.2) . ‘km’ e o resultado será 42 km. 
Podemos, é claro, usar o comando echo para mostrar na tela o con-
teúdo de variáveis, tanto string quanto numéricas. Veja, por exemplo, o 
código a seguir: 
39 Elementos básicos do PHP – parte 1
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
 
 
 
<?php 
$idade = 2020 – 1985; 
$nome = 'João da Silva'; 
?> 
<html> 
<head> 
<title> Página do <?php echo $nome?></title> 
</head> 
<body> 
<h1>Ele tem <?php echo $idade?> anos de idade!</h1> 
</body> 
</html> 
NA PRÁTICA 
Lembra-se da função date? Use-a para manter a idade de João atualiza-
da na página. Além disso, tente criar outras variáveis para armazenar e 
mostrar na página, por exemplo, o sabor de sorvete preferido de João 
e seu número de matrícula na faculdade. Mostre na tela quanto João 
teria em uma conta bancária se tivesse depositado 5 centavos por dia 
desde o dia em que nasceu. Sinta-se livre para ignorar anos bissextos, 
assumir que o dia de aniversário de João é sempre o dia atual e ignorar 
absolutamente quaisquer tipos de juros, taxas, rendimentos, impostos 
ou correção monetária aplicáveis. 
3 Include e require 
Naturalmente, concentrar todo o nosso código em um único arquivo 
tornaria o desenvolvimento algo bem desorganizado. Como você deve 
saber, a organização do código é fundamental para que o desenvolvi-
mento tenha fluidez e agilidade. Por isso, são necessários mecanismos 
de separar o código em vários arquivos. 
Veja o exemplo anterior. Note que precisamos escrever toda a parte 
de head e abrir o body, e depois fechamos o body e o HTML. Pensando 
40 Linguagens de servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
 
 
em um website real, ainda teríamos provavelmente um elemento de ca-
beçalho, com links de navegação e possivelmente um rodapé com in-
formações de contato. Isso se repetiria em toda página que tivéssemos 
que escrever. Podemos simplificar esse cenário, criando os arquivos 
“inicio.php” e “fim.php”. O conteúdo de “inicio.php” seria: 
<html> 
<head> 
<title>Página do João</title> 
</head> 
<body> 
E no “fim.php”, teríamos: 
</body> 
</html> 
Agora só falta alterar o “index.php”, adicionando instruções para pe-
gar o conteúdo desses arquivos e encaixar no local correto. Para isso, 
o PHP nos traz duas opções: o comando include e o comando require. 
A princípio, os dois comandos fazem a mesma coisa: pegam o con-
teúdo de um outro arquivo e “colam” na linha em que foram escritos. 
Nesse caso, nosso “index.php” se tornaria: 
<?php 
require 'inicio.php'; 
$idade = 2020 – 1985; 
?> 
<h1>Ele tem <?php echo $idade?> anos de idade!</h1> 
<?php 
require 'fim.php'; 
?> 
41 Elementos básicos do PHP – parte 1
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
 
 
 
 
 
 
No código apresentado, ambos os requires poderiam ser includes 
sem problema algum. A diferença entre ambos está no comportamen-
to de cada um quando o arquivo não é encontrado. Em geral, é mais 
recomendado utilizar o comando require, pois se o arquivo não for en-
contrado a execução será interrompida com um erro fatal. Por sua vez, 
o include apenas retornará um warning e permitirá que a execução con-
tinue, o que pode levar o programador a crer erroneamente que seu pro-
grama está válido. 
4 Estruturas de condição e laços – parte 1 
(switch case, for, if, else, while) 
Agora que sabemos criar variáveis e organizar nosso código, está na 
hora de botar a mão na massa! Vamos ver como escrever algoritmos 
utilizando estruturas de seleção e repetição. 
4.1 Estruturas de condição 
A estrutura de condição mais simples que temos é o desvio con-
dicional, o nosso famoso if. Um if em PHP é exatamente igual a um if 
em C, Java ou JavaScript, por exemplo. Considerando a variável $idade 
presente no nosso “index.php”, poderíamos escrever: 
if ($idade >= 18) { 
echo 'Você é maior de idade'; 
} 
O código apenas será executado se a condição $idade >= 18 for ava-
liada como verdadeira. Opcionalmente, podemos fornecer um conjunto 
adicional de instruções para o caso de a condição ser falsa, usando o 
comando else. Veja: 
42 Linguagens de servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
 
 
 
 
 
if ($idade >= 18) { 
echo 'Você é maior de idade'; 
} else { 
echo 'Você é menor de idade'; 
} 
Se a condição $idade >= 18 for avaliada como verdadeira, o primei-
ro trecho de código será executado. Caso contrário (else), o segundo 
trecho será executado. Também podemos encadear vários ifs, gerando 
uma sequência de comandos conhecida como else if: 
if ($idade >= 18) { 
echo 'Você é maior de idade'; 
} else if ($idade >= 16) { 
echo 'Você é menor de idade, mas pode votar'; 
} else { 
echo 'Você é menor de idade e não pode votar'; 
} 
Nesse caso, a condição $idade >= 16 só será avaliada se $idade >= 
18 for falsa. Se nenhuma das condições for verdadeira, o terceiro trecho 
de código será executado. 
Quando estamos lidando com dados reais, é muitocomum estru-
turas de seleção mais complexas surgirem. Digamos que estamos li-
dando com um site de delivery, em que um pedido pode ter diferentes 
estados: “0 – Aguardando confirmação”, “1 – Sendo preparado”, “2 – A 
caminho” e “3 – Entregue”. Se fôssemos reagir a cada um dos estados 
diferentes usando um if, teríamos um código mais ou menos assim: 
43 Elementos básicos do PHP – parte 1
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
<h1> O seu pedido está 
<?php 
if ($status == 0) { 
echo 'Aguardando confirmação'; 
} else if ($status == 1) { 
echo 'Sendo preparado'; 
} else if ($status == 2) { 
echo 'A caminho'; 
} else if ($status == 3) { 
echo 'Entregue'; 
} else { 
echo 'Desconhecido'; 
} 
?> 
</h1> 
Como é possível notar, o código pode se tornar um pouco verboso. 
Por isso, temos a construção switch/case, que nos ajuda quando temos 
um número finito previamente conhecido de valores possíveis para uma 
variável. 
<h1> O seu pedido está 
<?php 
switch ($status) { 
case 0: 
echo 'Aguardando confirmação'; 
break; 
case 1: 
echo 'Sendo preparado'; 
break; 
case 2: 
echo 'A caminho'; 
break; 
case 3: 
echo 'Entregue'; 
break; 
default: // caso não se encaixe em nenhuma outra 
echo 'Desconhecido'; 
break; 
} 
?> 
</h1> 
44 Linguagens de servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
 
 
 
 
 
Embora, em questão de número de linhas, o nosso código tenha fica-
do um pouco mais extenso, muitas vezes o código com switch se torna 
preferível em termos de legibilidade, pois a intenção do código fica, em 
geral, mais clara. 
4.2 Estruturas de repetição 
A estrutura de repetição (laço) mais simples que temos é o while. O 
seu formato no PHP também deve ser bem familiar para programado-
res de outras linguagens. O while é frequentemente combinado com 
variáveis de controle, como contadores e acumuladores. Por exemplo, 
se quiséssemos listar todos os aniversários do nosso exemplo: 
$ano = 1985; 
while ($ano <= 2020) { 
$idade = $ano – 1985; 
echo "<p>Sua idade era $idade em $ano</p>"; 
$ano++; 
} 
PARA SABER MAIS 
Repare que, no exemplo colocado, pela primeira vez pusemos uma tag 
HTML dentro de uma string do PHP. De forma geral, podemos programar 
de duas maneiras. A primeira seria escrever o HTML e colocar “enxer-
tos” de PHP ao longo do documento. A segunda seria escrever o código 
PHP sempre colocando o HTML como parte das strings e chamando o 
comando echo para exibi-las. Ambas as formas são válidas, apresentam 
o mesmo resultado e podem ser misturadas sem problema algum, inclu-
sive dentro do mesmo documento. O programador está totalmente livre 
para decidir quando é mais cômodo usar uma forma ou outra. 
45 Elementos básicos do PHP – parte 1
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
 
 
 
 
 
 
 
No exemplo, usamos a variável $ano como nosso contador e con-
trolamos a quantidade de vezes que o loop executa, verificando se esse 
contador excedeu o valor de 2020. A linha “$ano++” é o mesmo que 
escrever “$ano = $ano + 1” e incrementa a variável $ano em 1 a cada 
execução do laço. Como você provavelmente sabe, existe uma forma 
mais curta de escrever o mesmo loop, usando o laço for. 
for ($ano = 1985; $ano <= 2020; $ano++) { 
$idade = $ano – 1985; 
echo "<p>Sua idade era $idade em $ano</p>"; 
} 
Esse laço concentra, na mesma linha, os trechos de inicialização, ve-
rificação e atualização da variável de controle, melhorando a organiza-
ção e legibilidade do nosso código. 
5 Requisição GET/POST 
Para finalizar este capítulo, vamos falar um pouco sobre as formas 
de pedir para um usuário digitar um dado. Quando escrevemos um 
programa para o terminal, podemos interromper temporariamente sua 
execução para o usuário digitar determinada informação e depois reto-
mamos a execução normalmente. No entanto, em um ambiente web, a 
solução é um pouco diferente, pois temos acesso a formulários. 
O processo funciona da seguinte forma: na primeira vez que o usuário 
requisita a página, não podemos mostrar o resultado, pois ele não enviou 
junto com a requisição os dados do formulário. Então, mandamos um 
HTML com o formulário em branco pedindo para ele digitar as informa-
ções. Quando o usuário preencher o formulário e clicar em “Enviar”, uma 
nova requisição será feita, dessa vez com os dados do formulário. Do lado 
do servidor, identificaremos isso e, em vez de mandar o formulário, envia-
remos o resultado que o usuário deseja. Seria algo mais ou menos assim: 
46 Linguagens de servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
Figura 1 – Exemplo do fluxo de requisições de um formulário 
Cliente 
(navegador) 
Quero o index.php 
Servidor 
(web server) 
Você não mandou os dados do formulário. Aqui está o HTML com o formulário 
Quero o index.php. Aqui está o formulário preenchido 
Aqui está o HTML com o resultado 
Cliente 
(navegador) 
Servidor 
(web server) 
Vamos entender melhor tudo isso com um exemplo. Vamos modifi-
car o nosso “index.php” para conter o seguinte: 
<?php require 'inicio.php'?> 
<h1>
 Meu Formulário 
</h1> 
<form>
 <label for="campo_de_nome">Digite seu nome</label>
 <input name=″nome_usuario″ id=″campo_de_nome″ 
type=″text″/>
 <button type=″submit″>Enviar</button> 
</form> 
<?php require 'fim.php'?> 
Se olharmos agora no nosso navegador, veremos o seguinte 
resultado: 
Figura 2 – Nosso formulário no navegador 
Meu Formulário 
Digite seu nome Enviar 
47 Elementos básicos do PHP – parte 1
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
Repare que colocamos um elemento <form> ao redor do nosso for-
mulário. Esse elemento, por enquanto, não parece ter função alguma, 
mas logo ficará claro o motivo de ele existir. Então, temos três elementos: 
• O label informa o rótulo da nossa caixa de texto, e o atributo for 
indica a qual campo aquele rótulo se refere. O formulário funcio-
naria perfeitamente sem esse campo, no entanto, em termos de 
usabilidade e acessibilidade do formulário, esse elemento é extre-
mamente importante. 
• O input é efetivamente a caixa de texto. Indicamos que o tipo que 
ele recebe é um texto (type=”text”), que o identificador do elemen-
to é campo_de_nome e que o nome do valor que vamos receber 
será nome_usuario. Note que o id do elemento deve corresponder 
ao valor do atributo for do elemento label. O atributo name poderia 
ser outro de sua preferência, e o usaremos em breve. 
• O button com type=”submit” indica que, ao clicar neste botão, que-
remos submeter o formulário. 
NA PRÁTICA 
Sempre prefira usar o label com o atributo for em vez de usar um ele-
mento genérico como um p, por exemplo. Visualmente,o resultado pode 
parecer o mesmo, mas há muito mais no HTML do que apenas o estilo 
visual. Tente, por exemplo, clicar no label e note que o campo correspon-
dente será selecionado. Isso não aconteceria com o elemento p, ou se o 
atributo for estivesse incorreto. 
Além disso, usuários com deficiências visuais podem contar com o au-
xílio de softwares leitores de tela, que se beneficiam em casos assim. 
Motores de busca também conseguem interpretar melhor o seu HTML 
se você usar os componentes da forma correta, fazendo o seu site obter 
uma pontuação mais alta e aparecer mais bem ranqueado nas buscas. 
48 Linguagens de servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
 
 
Para receber os dados do lado do servidor, utilizaremos, a princípio, a 
variável $_GET. Como o nosso formulário definiu que o nome do campo 
é “nome_usuario”, basta acessarmos usando a notação $_GET[ ‘nome_ 
usuario’ ] (não se preocupe, veremos no próximo capítulo o que essa 
sintaxe significa). Podemos verificar se esse campo foi enviado através 
do comando isset($_GET[ ‘nome_usuario’ ]). Por exemplo, tente adicio-
nar, após fechar o <h1>, o seguinte código: 
<?php 
if(isset($_GET['nome_usuario'])){
 echo '<h2>Olá, ' . $_GET['nome_usuario'] . '<h2>'; 
} 
?> 
Ao testar o programa, podemos ver que está funcionando. Repare, 
no entanto, que o endereço na barra do navegador mudou e agora mos-
tra algo como ?nome_usuario=NomeDigitado. O leitor certamente já se 
deparou com endereços desse tipo. Esse trecho é chamado de query 
string, entendida automaticamente pelo PHP. URLs com query strings 
são muito úteis quando queremos que o usuário possa abrir novamente 
a página exatamente do jeito que está, com o formulário “pré-subme-
tido”. Um exemplo clássico é o resultado de uma busca, que o usuário 
pode querer compartilhar com algum amigo ou salvar nos seus favori-
tos. Note que você pode editar manualmente os valores da query string 
diretamente na barra de endereços e apertar o “Enter”, sem nem sequer 
precisar interagir com o formulário. 
No entanto, nem sempre queremos que os campos do formulário 
fiquem armazenados na URL. Para esses casos, temos também o mé-
todo POST. Há muitas diferenças, principalmente semânticas, entre os 
métodos POST e GET, mas, para os fins deste capítulo, basta dizer que 
o POST envia as informações de uma forma “escondida” do usuário. 
Para usá-lo, basta adicionar method=”post” no seu elemento <form> e 
acessar usando a variável $_POST em vez de $_GET. Nosso código final 
ficaria assim: 
49 Elementos básicos do PHP – parte 1
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
<h1>
 Meu Formulário 
</h1> 
<?php 
if(isset($_POST['nome_usuario'])){
 echo '<h2>Olá, ' . $_POST['nome_usuario'] . '<h2>'; 
} 
?> 
<form method=″post″>
 <label for=″campo_de_nome″>Digite seu nome</label>
 <input name=″nome_usuario″ id=″campo_de_nome″ 
type=″text″/>
 <button type=″submit″>Enviar</button> 
</form> 
Considerações finais 
Neste capítulo, aprendemos conceitos que, embora básicos, são es-
senciais para o desenvolvimento de qualquer aplicação PHP, indepen-
dentemente de sua escala. 
Aprendemos os principais componentes estruturais de um algoritmo 
em PHP: os comandos if, switch, while e for. Esses componentes, por si 
só, já tornariam nossa linguagem capaz de escrever qualquer algoritmo 
possível. No entanto, como veremos no próximo capítulo, temos algu-
mas outras cartas na manga, como outros comandos e estruturas de 
dados, que deixarão nosso desenvolvimento mais versátil e ágil. 
Também aprendemos como organizar nosso código em vários ar-
quivos, através dos comandos include e require, e como capturar e tratar 
a entrada de um usuário via formulário, através tanto do método GET 
quanto do método POST. 
50 Linguagens de servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
 
Referências 
NIEDERAUER, Juliano. Desenvolvendo websites com PHP: aprenda a criar web-
sites dinâmicos e interativos com PHP e bancos de dados. 3. ed. São Paulo: 
Novatec, 2017. 
51 
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
Capítulo 4 
Elementos básicos 
do PHP – parte 2 
Neste capítulo, iremos dar continuidade aos nossos estudos de como 
expressar algoritmos na linguagem PHP. No último capítulo, aprende-
mos sobre os tipos básicos de variáveis e algumas das estruturas de 
seleção e repetição mais comuns. Agora, vamos focar nossa atenção 
em um dos elementos mais comuns da programação: os arrays. 
Iremos mostrar como criar e entender os tipos de arrays no PHP, 
como acessar suas posições e como usá-los a nosso favor na hora de 
programar. Também veremos como manipular e iterá-los de uma forma 
concisa e bastante prática, usando o loop foreach. 
52 Linguagens de servidor: uma abordagem prática com PHP Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
 1 Arrays 
Array, em tradução livre, significa arranjo. Em computação, no en-
tanto, o termo se refere a uma estrutura de dados que normalmente é 
traduzida como vetor, embora também possa representar uma matriz 
ou um tensor (matriz multidimensional). Os arrays fazem parte de pra-
ticamente toda linguagem de programação moderna, pois são muito 
úteis para expressar certos algoritmos que envolvem repetição de um 
número arbitrário de elementos. Em PHP, no entanto, um array pode re-
presentar muito mais do que apenas vetores ou matrizes. 
Como mencionado, array é uma estrutura de dados. Isso significa 
que, dentro de uma mesma variável, podemos armazenar e estruturar 
múltiplos valores, inclusive de tipos diferentes, evitando assim de criar-
mos uma variável para cada valor que queremos gravar. 
Vamos começar com um exemplo básico, utilizando um array para 
representar uma lista de elementos. Suponha que temos uma gara-
gem com cinco vagas, em que cinco amigos estacionaram os carros. 
Gostaríamos de guardar, em variáveis, o nome da pessoa cujo carro 
está em cada vaga. Uma opção seria simplesmente fazer o seguinte: 
$nome1 = "André"; 
$nome2 = "Bruno"; 
$nome3 = "Carlos"; 
$nome4 = "Diego"; 
$nome5 = "Eduardo"; 
Note, no entanto, que ficaria difícil manter esse código se, de repente, 
tivéssemos que ter 50, 500 ou 5.000 vagas. Podemos armazenar cada 
um desses nomes utilizando um array: 
53 Elementos básicos do PHP – parte 2
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
$nomes = array("André",

Continue navegando