Buscar

PROGRAMAÇÃO PARA INTERNET

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 89 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 89 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 89 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PROGRAMAÇÃO PARA INTERNET (CSS, HTML, PHP)
Prof. Me. Cleber Jose Semensate Santos
UNIDADE I – AMBIENTE DE DESENVOLVIMENTO E INTRODUÇÃO AO
HTML E CSS
INTRODUÇÃO
Olá, aluno(a), seja bem-vindo(a)!
Começo a nossa primeira unidade com uma questão primordial: por que uma empresa
deveria ter um site? Esse é um dos questionamentos mais importantes que deve ser feito nos
dias atuais, já que há uma crescente evolução digital, que permite realizar ações em tempo
real, como a estimulação e o compartilhamento de informações de uma marca. Dessa maneira,
as empresas que buscam uma lucratividade final precisam adequar-se e atentar-se para esse
novo tipo de tecnologia e comércio.
Assim, o objetivo principal dessa unidade é preparar o ambiente de desenvolvimento
que será utilizado em toda a disciplina, desde o Terminal CMD, que será o nosso terminal de
comandos, até o XAMPP, o nosso Servidor Web Localhost. Por isso, nessa unidade, também
mostraremos a estrutura por trás de uma página web, afinal, para que tenhamos Sistemas
rodando nessa rede, o HTML e CSS estão presentes na estrutura, dando uma sustentação para
que o PHP e o MySQL possam de fato utilizar todo o poder da programação PHP.
Preparado?
Vamos iniciar os nossos estudos!
1 FERRAMENTAS E PREPARAÇÃO DO AMBIENTE
1.1 Objetivos
O objetivo principal deste tópico, “Ferramentas e preparação do ambiente”, é preparar o
ambiente de desenvolvimento que será utilizado em toda a disciplina, desde o Terminal CMD,
que será o nosso terminal de comandos até o XAMPP, o nosso Servidor Web Localhost.
1.2 Instalando o Terminal Cmder
O Cmder é um pacote de software criado a partir de uma pura frustração devido à
ausência de emuladores de consoles agradáveis ​ ​ no Windows. Ele é baseado em um
software incrível e temperado com o esquema de cores Monokai, com um layout de “prompt”
personalizado, parecendo atraente desde o início. A versão utilizada nesta apostila é a v1.3.11.
Para instalar o Terminal Cmder, siga as orientações a seguir.
Passo a passo para a instalação
1) Acesse a página: https://cmder.net
Figura 1 – Instalação do Cmder. Fonte: O autor.
2) Clique em DownloadMini:
Figura 2 – Instalação do Cmder Mini. Fonte: O autor.
3) Descompacte o arquivo “cmder_mini.zip” em alguma pasta de seu computador e,
depois, execute o arquivo “Cmder.exe”.
Figura 3 – Download Cmder. Fonte: O autor.
1.3 Instalando o Sublime Text 3
Para manter a produtividade em seu dia a dia, o desenvolvedor precisa de um editor de
códigos eficiente e, entre tantos ambientes de desenvolvimento robustos e gratuitos, o
Sublime Text destaca-se justamente pela simplicidade, facilidade de uso e por ser leve. Além
disso, ele aceita diversas linguagens de programação e é personalizável. A versão utilizada
nesta apostila é a Build 3200.
Para instalar o Sublime Text 3, siga as orientações que seguem.
Passo a passo para a instalação
1) Acesse a página https://www.sublimetext.com
Figura 4 – Instalação do Sublime Text. Fonte: O autor.
2) Clique na opção Download. Escolha o seu sistema operacional e clique em baixar:
Figura 5 – Instalação do Sublime Text. Fonte: O autor.
3) Execute o arquivo “Sublime Text Build 3176 x64 Setup.exe” e apenas dê “Next” até
o final.
Figura 6 – Instalação do Sublime Text. Fonte: O autor.
4) Ao concluir, um ícone será criado em sua área de trabalho. Caso isso não ocorra,
procure pelo programa Sublime Text 3 e abra-o:
Figura 7 – Área de Trabalho do Sublime Text. Fonte: O autor.
1.4 Instalando o XAMPP
O XAMPP é completamente gratuito, a distribuição Apache é fácil de instalar e
contém MySQL, PHP e Perl. O pacote de código aberto do XAMPP foi criado justamente
com essas características. A versão utilizada nesta apostila é a 7.3.2.
Para instalá-lo, siga as instruções.
Passo a passo para a instalação
1) Acesse a página: https://www.apachefriends.org/pt_br/index.html, escolha o seu
Sistema Operacional e clique para baixar:
Figura 8 – Instalação do XAMPP. Fonte: O autor.
2) Após baixar o arquivo, clique para instalar. Dê “Next” para continuar a instalação:
Figura 9 – Instalação do XAMPP. Fonte: O autor.
3) Escolha um local em seu computador, no qual o XAMPP será instalado:
Figura 10 – Instalação do XAMPP. Fonte: O autor.
4) Após instalá-lo, clique no ícone para abrir ou procure por XAMPP Control Panel em
seu computador. Clique no botão “Start” em Apache e MySQL:
Figura 11 – Instalação do XAMPP. Fonte: O autor.
5) Após “startar” o Apache e o MySQL por algum navegador de sua máquina, acesse
este endereço: http://localhost/dashboard. A seguir, uma página como esta deve abrir:
Figura 12 – Instalação do XAMPP. Fonte: O autor.
6) Enquanto estiver trabalhando com o XAMPP, deixe-o minimizado em seu
computador. Quando reiniciar a máquina, você deve abri-lo e “startar” o Apache e o MySQL,
para que o Servidor local fique ativo:
Figura 13 – Instalação do XAMPP. Fonte: O autor.
1.5 Instalando o Composer
O Composer é um gerenciador de pacotes para a linguagem de programação PHP em
nível de aplicativo, que fornece um formato padrão para gerenciar AS dependências de
software PHP e as bibliotecas necessárias. Foi desenvolvido por Nils Adermann e Jordi
Boggiano, que continuam a gerenciar o projeto. A versão utilizada nesta apostila é a v1.8.4.
Siga as instruções a seguir para instalar o Composer.
Passo a passo para a instalação
1) Acesse a página: https://getcomposer.org
Figura 14 – Instalação do Composer. Fonte: O autor.
2) Clique em “Download”, escolha o seu Sistema Operacional e clique para baixar:
Figura 15 – Instalação do Composer. Fonte: O autor.
3) Siga os passos da instalação, dando “Next” até o final:
Figura 16 – Instalação do Composer. Fonte: O autor.
4) Escolha a pasta de instalação do PHP, que, neste caso, será a instalação que está
dentro do XAMPP. Veja o caminho abaixo:
Figura 17 – Instalação do Composer. Fonte: O autor.
5) Para confirmar a instalação, acesse o Terminal Cmder e digite a palavra “composer” e
dê “Enter”. Uma tela como esta deve abrir:
Figura 18 – Instalação do Composer. Fonte: O autor.
2 CONHECENDO O HTML E O CSS
2.1 Objetivos
O objetivo deste tópico, “Conhecendo o HTML e o CSS”, é apresentar a estrutura que
existe por trás de uma página web. Para que tenhamos os sistemas rodando nessa rede, o
HTML e o CSS estão na estrutura, dando uma sustentação para que o PHP e o MySQL
possam de fato utilizar todo o poder da programação.
2.2 Entendendo a Linguagem de Marcação HTML
HTML não é realmente uma linguagem de programação, mas sim uma linguagem de
marcação, usada para dizer ao navegador como exibir as páginas que são visitadas. Consiste
em uma série de elementos, que você junta ao redor de diferentes partes do seu conteúdo para
que ele apareça ou aja de um determinado jeito. Por exemplo, veja a seguinte linha de
conteúdo:
Meu gatinho é muito mal-humorado.
Se quiséssemos oficialmente dizer que isso é um parágrafo, poderíamos envolver o
elemento em um código (<p>):
<p>Meu gatinho é muito mal-humorado.</p>
2.2.1 Anatomia de um elemento HTML
Vamos explorar esse parágrafo mais profundamente.
Figura 19 – Anatomia do elemento HTML. Fonte: O autor.
As principais partes de um elemento são:
–
https://developer.mozilla.org/pt-BR/docs/Web/HTML/Element/p
1. A “tag” de abertura (opening tag): Consiste no nome do elemento (no caso, p),
envolvido em “chaves” (chevron) de abertura e fechamento. Isso demonstra onde o
elemento começa, ou onde o seu efeito se inicia — neste caso, onde é o começo do
parágrafo.
2. A “tag” de fechamento (closing tag): É a mesma coisa que a “tag” de abertura, exceto
que inclui uma barra antes do nome do elemento. Isso demonstra onde o elemento
acaba — neste caso, onde fica o fim do parágrafo. Esquecer de incluir uma “tag” de
fechamento é um dos erros mais comuns de iniciantes, o que pode ocasionar resultados
estranhos.
3. O conteúdo (content): É o conteúdo do elemento, que, neste caso, é só texto.
4. O elemento (element): A “tag” deabertura, com a de fechamento e o conteúdo formam o
elemento.
Elementos também podem ter atributos parecidos com:
Figura 20 – Anatomia do elemento “class” HTML. Fonte: O autor.
Atributos contêm informação extra sobre o elemento, que você não quer que apareça
no elemento de fato. Nesse caso, o atributo classe (“class”) permite que você dê ao elemento
um nome de identificação (“editor-note”), que, depois, poderá ser usado para dar ao elemento
informações de estilo ou outras coisas.
Por isso, um atributo sempre deve ter:
 Um espaço entre o atributo e o nome do elemento (ou o atributo anterior, quando o
elemento já tiver um).
 O nome do atributo, seguido por um sinal de igual.
 Aspas de abertura e fechamento, envolvendo todo o valor do atributo.
2.2.2 Aninhando elementos
Você pode colocar elementos dentro de outros elementos também, o que é chamado
aninhar (nesting). Se quiséssemos declarar que o gato é MUITO rabugento, poderíamos
envolver a palavra "muito" em um <strong>, o que significaria que a palavra deve ser
fortemente enfatizada:
https://developer.mozilla.org/pt-BR/docs/Web/HTML/Element/strong
<p>Meu gatinho é <strong>muito</strong> mal-humorado.</p>
Contudo, você precisa ter certeza de que os seus elementos estão devidamente
aninhados. No exemplo acima, abrimos o elemento <p> primeiro, depois o negrito, então
temos que fechar o negrito primeiro, depois o p. Nesse sentido, a forma a seguir é incorreta:
<p>Meu gatinho é <strong>muito mal-humorado.</p></strong>
Assim, observamos que os elementos têm que abrir e fechar perfeitamente, para que
eles estejam claramente dentro ou fora um do outro. Se eles se sobrepusessem, como no
exemplo, o “browser” tentaria adivinhar o que você está querendo dizer, gerando resultados
inesperados. Então, não faça isso!
2.2.3 Elementos vazios
Alguns elementos não tem conteúdo. sendo chamados de elementos vazios. Considere
o elemento <img> que temos na nossa HTML:
<img src="imagens/firefox-icon.png" alt="Minha imagem de teste">
Ele contém dois atributos, mas não há “tag” </img> de fechamento, nem conteúdo
interno. Isso acontece porque uma imagem não envolve conteúdo para ter efeito em si mesma,
pois a sua proposta é incorporar uma imagem na página HTML, no lugar em que o código
aparece.
2.2.4 Anatomia de um documento HTML
Isto é o básico dos elementos HTML individuais, mas eles não são muito úteis por si só.
Agora, vamos ver como elementos individuais podem formar uma página inteira de HTML.
Vamos revisitar os códigos que colocamos no exemplo de index.html, presentes no artigo
“Dealing with files” (MDN CONTRIBUTORS, 2019a).
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Minha página de teste</title>
</head>
https://developer.mozilla.org/pt-BR/docs/Web/HTML/Element/img
<body>
<img src="imagens/firefox-icon.png" alt="minha página de teste">
</body>
</html>
Aqui, nós temos:
 <!DOCTYPE html> — o “doctype”. Há muito tempo, quando o HTML era novo (por
volta de 1991/2), “doctypes” eram criados para agir como links, sendo um conjunto de
regras que a página HTML tinha que seguir para que o HTML fosse considerado bom, o
que poderia significar uma checagem automática ou outras coisas úteis. No entanto,
atualmente, ninguém se interessa mais por “doctypes”, haja vista que eles são apenas
artifícios históricos que precisam ser incluídos para tudo funcionar bem. Por agora, é tudo
o que você precisa saber sobre esse tema.
 <html></html>— o elemento <html>. Esse elemento envolve todo o conteúdo da página
e, às vezes, é conhecido como um elemento raiz.
 <head></head> — o elemento <head>. Age como um recipiente de tudo o que você
deseja incluir em uma página HTML, mas que não é o conteúdo que você quer mostrar
para quem vê a sua página. Por exemplo, palavras-chave, a descrição que você quer que
apareça nos resultados de busca, CSS para dar estilo ao conteúdo, declarações de
conjuntos de caracteres, entre outros.
 <body></body>— o elemento <body>. Contém todo o conteúdo que você quer mostrar
ao público que visita a sua página, como texto, imagens, vídeos, jogos, faixas de áudio
tocáveis ou outros elementos que você escolher.
 <meta charset="utf-8">. Esse elemento aponta qual conjunto de caracteres o seu
documento deve usar para o “utf-8”, o que inclui praticamente todos os caracteres
conhecidos por todas as linguagens humanas. Ele pode lidar, basicamente, com todo o
conteúdo que você colocar em texto. Não há razão para não o escrever, afinal, com esse
código você poderá evitar problemas posteriores.
 <title></title>. Indica o título da sua página, que aparece quando a sua página carrega no
topo de “browser”. Ele é usado também para descrever a página quando você a coloca nos
favoritos.
2.3 Imagens
Depois da descrição da anatomia de um documento, que tal voltarmos a nossa atenção
para o elemento de imagem novamente?
Vamos lá! Observe o que segue.
<img src="imagens/firefox-icon.png" alt="Minha imagem de teste">
Como dissemos antes, a tag <img>, demonstrada acima, incorpora uma imagem em
nossa página, na posição em que aparece. Isso é feito pelo atributo “src” (source), que contém
um caminho para o nosso arquivo de imagem. Além disso, nós também incluímos um
atributo “alt” (alternative), que contém alguma descrição da imagem, podendo ser acessado
por usuários que não veem a imagem, talvez porque:
 Eles são cegos ou parcialmente cegos. Usuários com deficiência visual significativa
geralmente usam ferramentas chamadas Leitores de Tela para lerem o texto “alt”.
 Algo deu errado no código, o que significa que a imagem não pode ser mostrada. Por
exemplo, tente deliberadamente mudar o caminho, dentro do atributo “src”, para fazê-
lo ficar incorreto. Quando você salvar e recarregar a página, você deverá ver algo
assim no lugar da imagem:
Figura 21 – Página recarregada. Fonte: O autor.
A frase chave sobre o texto “alt” é: “texto que descreve a imagem”. O texto “alt” que
você escreve deve dar ao leitor o suficiente para que ele tenha uma boa ideia do que a imagem
mostra, a partir da leitura. O nosso texto “My test image”, isto é, “minha imagem teste”, não é
um bom sinal. Uma opção de texto melhor seria: “A logo do Firefox: uma raposa em chamas
envolvendo a Terra”. Assim, tente usar textos alt melhores para a sua imagem, lembrando
sempre que deve ser o mais acessível possível, visto que a web é projetada para todas as
pessoas, conforme o artigo “Accessibility” (MDN CONTRIBUTORS, 2019c).
2.4 Marcando um Texto
Esta sessão 2.4 abordará alguns elementos de HTML que você usará para marcar um
texto.
2.4.1 Cabeçalhos
Elementos de cabeçalho permitem que você especifique certas partes de seu conteúdo
como cabeçalhos ou subcabeçalhos. Da mesma maneira que um livro possui um título
principal e um título para cada capítulo, os quais podem ser divididos em subtítulos, um
documento HTML também pode. O HTML contém seis níveis de cabeçalho: <h1>–<h6>, mas
os mais usuais são o 3-4:
<h1>My main title</h1>
<h2>My top level heading</h2>
<h3>My subheading</h3>
<h4>My sub-subheading</h4>
Agora é sua vez!
Tente adicionar um título que haja uma identificação com a sua página, acima do seu
elemento <img>.
2.4.2 Parágrafo
Como explicado anteriormente, os elementos <p> contêm parágrafos de texto. Você
vai usá-los bastante para marcar o conteúdo de texto.
<p>This is a single paragraph</p>
Com isso, pense agora “Como será o meu site?”. Com isso em mente, tente imaginar o
planejamento e design que a sua página teria, isto é, guie-se por perguntas como: “quais
informações o meu site oferecerá?”, “quais fontes e cores eu quero?”, “o que meu site fará?”,
conforme exposto no artigo: What will your website look like? (MDN CONTRIBUTORS,
2019b). Feito isso, adicione o seu texto em alguns parágrafos, diretamente abaixo de seu
elemento <img>.
2.4.3 Listas
Vários conteúdos da web estão organizados em listas, as quais devem ter pelo menos
dois elementos. Então o HTML tem elementosespeciais para elas. Os tipos mais comuns de
listas são as ordenadas e as não-ordenadas:
 Listas não-ordenadas são tipos de listas cuja ordem dos itens não importa, como uma
lista de compras. Elas são envolvidas em um elemento <ul>.
https://developer.mozilla.org/pt-BR/docs/Web/HTML/Element/h1
https://developer.mozilla.org/pt-BR/docs/Web/HTML/Element/h6
https://developer.mozilla.org/pt-BR/docs/Web/HTML/Element/img
https://developer.mozilla.org/pt-BR/docs/Web/HTML/Element/p
https://developer.mozilla.org/pt-BR/docs/Web/HTML/Element/ul
 Listas Ordenadas são tipos de listas cuja ordem dos itens importa, como uma receita.
Elas são envolvidas em um elemento <ol>.
Nesse sentido, cada item dentro das listas é posto dentro de um elemento <li> (item de
lista). Então, por exemplo, se quiséssemos tornar uma lista parte de um parágrafo, faríamos:
<p>At Mozilla, we’re a global community of technologists, thinkers, and builders
working together... </p>
Dessa maneira:
<p>At Mozilla, we’re a global community of</p>
<ul>
<li>technologists</li>
<li>thinkers</li>
<li>builders</li>
</ul>
<p>working together ... </p>
Agora que você aprendeu este conteúdo, tente adicionar uma lista ordenada ou não
ordenada em sua página.
2.5 Links
Links são muito importantes, pois são eles que fazem a web ser de fato uma rede. Para
implementar um link, nós precisamos usar uma âncora — <a> — o a é uma abreviatura
de “anchor” (“âncora”).
Para fazer um texto dentro de seu parágrafo virar um link, siga esses passos:
1. Escreva algum texto. Nós escolhemos o texto "Mozilla Manifesto".
2. Envolva o texto em um elemento <a>, da seguinte maneira:
<a>Mozilla Manifesto</a>
https://developer.mozilla.org/pt-BR/docs/Web/HTML/Element/ol
https://developer.mozilla.org/pt-BR/docs/Web/HTML/Element/li
https://developer.mozilla.org/pt-BR/docs/Web/HTML/Element/a
3. Dê um atributo “href” ao elemento <a>, como:
<a href="">Mozilla Manifesto</a>
4. Escreva o endereço que você quer “linkar” no valor do atributo:
<a href="https://www.mozilla.org/en-US/about/manifesto/">Mozilla Manifesto</a>
Você pode ter resultados inesperados ao omitir o https:// ou o http://, conhecidos
como “protocolo” no começo do endereço web. Então, sempre que você criar um link, clique
nele para ter certeza de que a conexão irá para onde você deseja.
SAIBAMAIS
Outro termo citado é o “href”, que pode parecer uma escolha obscura para um nome de
atributo, em uma primeira impressão. Por isso, caso você tenha problemas para memorizar
esse nome, lembre-se de seu significado: “hypertext reference”, isto é, referência em
hipertexto.
Agora, caso você ainda não tenha feito, adicione um link para a sua página.
Figura 22 – Resultado final da estruturação do HTML. Fonte: O autor.
As Cascading Style Sheets (CSS) permitem definir estilos, layouts e espaçamento de
maneira separada do conteúdo que deve ser estilizado. As informações CSS geralmente estão
contidas em um arquivo externo. Outro código, como uma página HTML, pode fazer
referência ao arquivo CSS para obter informações de layout. Por exemplo, quando você
define, em um arquivo externo, as fontes e as cores usadas para certos elementos. Além disso,
o CSS é definido como um padrão. Atualmente, as versões CSS 2.1 e CSS 3 são amplamente
utilizadas.
2.6 Seletores CSS e Regras de Estilo
O padrão CSS define seletores e regras de estilo. A sintaxe é definida da seguinte
maneira:
selector { property:value; }
Um seletor pode ser um de um identificador predefinido (por exemplo, H1), um nome
de classe (por exemplo, minha classe) ou um identificador (por exemplo, #myuniqueid). Já no
CSS, um identificador deve ser único em todos os elementos de uma página (ou janela no
nosso caso), enquanto uma classe pode ser atribuída a vários elementos.
Figura 23 – Anatomia de um comando CSS. Fonte: O autor.
Por exemplo, o arquivo CSS abaixo define o tamanho e a cor da tag “h1”.
h1 { color:red; font-size:48px; }
Há muitos tipos diferentes de seletor. Embora possamos fazer seleções mais
específicas, no Quadro 1, nós mostramos apenas os seletores de elementos que selecionam os
elementos de determinado tipo nos documentos HTML. Veja, então, alguns dos mais comuns
tipos de seletor:
Nome do seletor O que ele seleciona Exemplo
Seletor de elemento
(às vezes, chamado
“tag” ou seletor de
tipo)
Todos os elementos HTML de
determinada página.
3
Seletor de ID O elemento na página com o ID
específico (em uma página HTML,
você só pode ter um elemento por ID).
#my-id
Seleciona <p id="my-
id"> ou <a id="my-id">
Seletor de classe O(s) elemento(s) da página com uma
classe específica (múltiplas classes
podem aparecer em uma página).
.my-class
Seleciona <p class="my-
class"> e <a class="my-
class">
Seletor de atributo O(s) elemento(s) na página com o
atributo especificado.
img[src]
Seleciona <img
src="myimage.png"> mas
não <img>
Seletor de
pseudoclasse
O(s) elemento(s) especificado(s), mas
somente em um determinado estado.
Ex.: com o mouse sobre ele.
a:hover
Seleciona <a>, mas somente
quando o mouse está em
cima do link.
Quadro 1 – Diferentes tipos de seletores. Fonte: O autor.
2.6.1 Pseudoclasses CSS
As pseudoclasses CSS são usadas para qualificar os atributos dos seletores. Por
exemplo, você pode selecionar um link visitado em HTML e o estilo é diferente.
a:visited { color:red; }
Exercício 1: Estilize uma página HTML com CSS
A seguir, crie uma página CSS no Sublime Text e a estilize com o código CSS, como
assinalado na Figura 24. Crie um novo diretório e um arquivo chamado styles.css.
Figura 24 – Código CSS. Fonte: O autor.
No mesmo diretório, defina o seguinte arquivo HTML. Esse arquivo definirá o uso do
arquivo de folha de estilos styles.css do mesmo diretório.
Figura 25 – Página HTML com CSS incorporado. Fonte: O autor.
2.6.2 Contêiner HTML via ID e classe
O HTML permite definir seções através de contêineres “div”, que podem ser usados
​ ​ para estilizar partes do documento HTML de maneira diferente. Para esse fim, você
pode identificar os contêineres “div” via atributos de ID ou classe. O ID e a classe geram a
mesma saída, mas um ID deve ser exclusivo em um documento HTML, enquanto o atributo
de classe pode ser definido para vários elementos HTML em uma página. O CSS permite
estilizar esses elementos por meio de seletores especiais.
Siga os passos indicados a seguir, para criar um exemplo de utilização do HTML, em
parceria com o CSS.
Passo 01: Crie um arquivo stylesdiv.css.
Figura 26 – Trecho de código CSS. Fonte: O autor.
Passo 02: Crie o seguinte arquivo HTML para usar a folha de estilos, conforme
Figura 27:
Figura 27 – Trecho de código HTML. Fonte: O autor.
Pode ser usado também outros atributos, isto é, pode ser definido um certo estilo para
os links visitados ou pode ser determinado quando um usuário posiciona o mouse sobre ele.
Dessa maneira, será possível identificar se você já possui um ponto visitado ou se o mouse
passou sobre algum link, o que possibilita a alteração de sua exibição de acordo com isso.
Figura 28 – Trecho de código CSS utilizado em link. Fonte: O autor.
2.6.3. Margins e Padding
2.6.3.1 Margins
Um elemento de bloco pode ser pensado como uma caixa que contém algo. Essa caixa
possui uma borda para outros elementos, e você poderá influenciar a distância entre outros
elementos através das configurações de “margins” e “paddings”.
“Margin” é utilizado para definir a distância externa de outros elementos. Nessa
configuração, os valores para superior, direita, inferior e esquerda serão definidos, como
ilustra a Figura 29.
Figura 29 – Definindo “Margins” em elementos CSS. Fonte: O autor.
As margens de uma caixa individualmente também podem ser definidas ou
combinadas em uma instrução, como vemos no código expresso na Figura 30:
Figura 30 – Trecho de código CSS. Fonte: O autor.
2.6.3.2 “Padding”
“Padding” define a distância interna dos elementos até o final da caixa. Veja uma
aplicação prática no exemplo da Figura 31:
Figura 31 – Trechode código CSS. Fonte: O autor
O tamanho total da caixa HTML é estipulado pelo tamanho inicial da caixa, das
margens, do preenchimento e de uma borda, se definida.
SAIBAMAIS
O XML-RPC poderá ser visto como um compromisso entre a complexidade do SOAP
e a simplicidade do REST. Ele é muito semelhante ao SOAP, mas poderá ser mais absorvido
por apresentar um conceito mais amigável para o fornecedor. Como você poderá ver, o
servidor PHP XML-RPC também poderá fornecer respostas SOAP.
REFLITA
Alan Kay, cientista da computação, em 1971, afirma: “A melhor maneira de prever
o futuro é inventá-lo”.
Dito isso, consideramos que a computação é uma ferramenta que possibilita a
construção de soluções que podem revolucionar o mundo. Assim, conforme a afirmação
acima, o poder de inventar o futuro está em nossas mãos. Como poderemos usá-lo para
construir boas soluções para o mundo?
Um grande abraço! E que você tenha muito sucesso!
Fonte: AMOROSO, D. Frases impactantes sobre tecnologia e informática. Tecmundo, 24
nov. 2009. Disponível em: https://www.tecmundo.com.br/internet/3145-frases-impactantes-
sobre-tecnologia-e-informatica.htm. Acesso em: 20 nov. 2019.
INDICAÇÃO DE LEITURA
Você já se perguntou como a internet começou? Quais eventos e circunstâncias
propiciaram a popularidade atual da web? Ou como o HTML cresceu desde a década de 90?
Para ter as respostas para essas perguntas e ainda aumentar o seu conhecimento sobre HTML,
acesse:
LOGMAN, W. A. A history of HTML. 1998. Disponível em:
http://www.w3.org/People/Raggett/book4/ch02.html. Acesso em: 23 out. 2019.
INDICAÇÃO DE VÍDEO
Para que você tenha acesso a uma revisão interessante sobre o conceito de HTML,
veja o vídeo: Introdução à HTML - HTML e CSS na prática. 2013. Disponível em:
https://www.youtube.com/watch?v=smC1laH04dI. Acesso em: 12 out. 2019.
CONSIDERAÇÕES FINAIS
Imagino que a resposta inicial desta Unidade “por que devo ter um site?”, tenha sido
respondida. As empresas, com toda certeza, devem acompanhar a evolução tecnológica pela
qual o mundo está passando. Por buscarem uma lucratividade final, elas precisam adequar-se
às novas tecnologias e ao novo tipo de comércio, para que haja a estimulação e o
compartilhamento de informações sobre a sua marca.
Nesse sentido, ao iniciarmos a Unidade I, criamos um ambiente de desenvolvimento
que será utilizado em toda a disciplina. Tivemos a oportunidade de instalar todos os
programas primordiais para o nosso aprendizado e, ao final, rodamos o nosso Servidor Web
Localhost para testar os nossos futuros sites.
Vimos também uma estrutura que existe por trás de uma página web, necessária para
que tenhamos os sistemas rodem na WEB, além de perpassarmos pelos conceitos de HTML e
CSS, elementos que estão presentes nesta estrutura e dão sustentação para que o PHP e o
MySQL possam de fato utilizar todo o poder da programação.
Continue firme nos estudos e nos vemos na próxima Unidade!
http://www.w3.org/People/Raggett/book4/ch02.html
https://www.youtube.com/watch?v=smC1laH04dI
UNIDADE II – PROGRAMAÇÃO PARAWEB COM PHP
INTRODUÇÃO
Esta unidade inicia os estudos sobre programação para Internet, tratando de temas
como Histórico, conceitos iniciais da linguagem de programação PHP, que utilizam os
conceitos de Orientação a Objetos, sendo uma das linguagens mais utilizadas em
programação.
Com uma linguagem simplificada e detalhada, apresentamos também os conceitos de
utilização de “arrays”, que serão muito utilizados pelos programadores para sites, sistemas
on-line e aplicações web. Por fim, apresentaremos os tipos de operadores usados dentro da
linguagem de programação PHP.
Teremos ainda muita coisa boa chegando com o decorrer do curso. Vai ser muito bom
tê-lo aqui, para estudar e aprimorar-se profissionalmente. Espero que você tenha um bom
aprendizado e um excelente aproveitamento!
Então vamos lá!
Bons estudos!
1. PROGRAMAÇÃO PARAWEB COM PHP
1.1. Introdução à Programação paraWeb
Para fazer programação para a web, é preciso, primeiramente, saber o que ela é. A
Internet teve o seu início no final dos anos 1960, mediante uma iniciativa do governo
americano, especificamente do Departamento de Defesa, que solicitou, para os
pesquisadores de várias instituições dos Estados Unidos, a projeção de um sistema de defesa,
cuja grande diferença, em relação a outros sistemas já projetados, seria a descentralização e a
capacidade de resistir a ataques inimigos, realizados com armas nucleares, em qualquer
ponto dos Estados Unidos, sem necessariamente dividir a comunicação do país.
A internet surge, então, como uma solução, um sistema em que os dados eram
divididos em pacotes, que seriam encaminhados, instantaneamente, por várias rotas
disponíveis, ou seja, por um sistema baseado em redes de computadores. Dessa maneira,
mesmo se um ou mais computadores dessa rede fossem destruídos ou quando eles não
funcionassem mais, esse sistema poderia continuar em operação, ou seja, a comunicação
poderia fluir para outros computadores que ainda estivessem ativos.
Na prática, os pesquisadores americanos inventaram uma tecnologia voltada para a
interligação de computadores, os quais funcionavam em condições precárias de comunicação,
e, de maneira simplória, esse conjunto de tecnologias simples, porém extremamente confiável,
foi chamado de Internet. Depois disso, esse nome começa a ser usado em 1973, derivado do
conceito de “inter-networking” ou interligação de redes, que era estudado pelos pesquisadores
americanos desde o ano anterior, mas a rede que conhecemos hoje como Internet só surgiu na
década de 1980.
1.1.1. A cronologia da Internet
Para você entender melhor como surge a Internet, é interessante acompanhar a sua
cronologia desde o nascimento das primeiras ideias relacionadas às redes de computadores até
os dias atuais.
● 1957 – A União Soviética lança o Sputnik, primeiro satélite artificial da Terra. Em
resposta, os Estados Unidos criam a Advanced Research Projects Agency (ARPA), no
Departamento de Defesa (DoD), para estabelecer a liderança dos Estados Unidos na
ciência e na tecnologia militar.
● 1969 – No dia 1º de maio, é montado o primeiro equipamento da rede na Universidade da
Califórnia, em Los Angeles (UCLA). Fica, então, criado o primeiro ponto de conexão da
rede, que se chamava “ARPANET”. Ainda em 1969, são montados os três pontos
restantes de conexão. O segundo ponto de conexão é do Instituto de Pesquisas de
Stanford, e o terceiro ponto de conexão é o Centro de Pesquisas da Universidade da
Califórnia em Santa Bárbara (UCSB) e o da Universidade de Utah.
● 1970 – Primeira publicação do protocolo Host-Host original da ARPA. Há o primeiro
artigo da AFIPS sobre a ARPANET. A ALOHAnet é a primeira rede de comutação de
dados via rádio. Os servidores da ARPANET começam a usar o Protocolo de Controle de
Rede (Network Control Protocol, NCP), com o primeiro protocolo “host-host”.
● 1971 – É inventado o programa de e-mail para enviar mensagens através de rede
distribuída. O programa original é derivado de dois outros: um programa de e-mail intra
máquina (SENDMSG) e um programa experimental de transferência de arquivo
(CPYNET).
● 1978 – Os protocolos TCP-IP são divididos em TCP e IP.
● 1979 – Inauguração da primeira rede dedicada a Grupos de Discussão – USENET. É
também lançado o primeiro chat – canal de conversa em tempo real, acrescido da
possibilidade de Role Playing Game (RPG).
● 1982 – Bob Kahn e Vint Cerf são os mentores e chefes da equipe que acaba inventando o
TCP/IP, uma linguagem comum a todos os computadores da Internet. Pela primeira vez, a
coleção de redes espalhadas que constituíam a ARPANET é encarada como uma única
rede interligada. As grandes empresas começaram a usar a Internet para comunicarem
entre si e com os seus clientes.
● 1983 – Mudança do NCP para TCP/IP. Movement Information Net – MINET (Rede de
Movimento de Informação) tem início no começo do ano na Europa, conectado à Internet
em setembro. O Conselho das Atividadesda Internet (Internet Activities Board, IAB) é
estabelecido, substituindo o ICCB. O ARPANET se divide em ARPANET e MILNET,
sendo este último integrado a Rede de Dados de Defesa (Defense Data Network), criada
no ano anterior. Os 113 nós existentes vão para MILNET 68.
● 1984 – É introduzido o Sistema de Nome de Domínio (Domain Name System, DNS).
● 1988 – A rede atinge os 60.000 servidores. É concluída a instalação do primeiro cabo de
fibra óptica transatlântico, ligando a Europa a América do Norte. Esse cabo pode suportar
até 40.000 chamadas telefônicas simultâneas. Surge o primeiro vírus na Internet que
tomou a designação de Internet Worm e afeta 6.000 servidores. Para proteger a rede e
aumentar a sua segurança, é criado o CERT (Computer Emergency Response Team).
Novos termos como “cracker” e “hacker” entram para o vocabulário da Internet. Pelas
mãos de Jarkko Oikarinen nasce o IRC – Internet Relay Chat. Canadá, Finlândia, França,
Islândia,Noruega, Dinamarca e Suécia ligam-se à Internet.
● 1990 – Surge nos EUA a primeira Internet Service Provider Commercial. Após ter sido
absorvida pela Internet, a ARPANET deixa, definitivamente, de existir. Peter Deutsh,
Alan Emtage e Bill Heelan da McGill lançam o Archie. O primeiro softwareWorld Wide
Web é criado por Tim Berners-Lee. Surgem os primeiros ISP (Internet Service Providers)
comerciais. O número de servidores na internet excede os 300.000. Argentina, Áustria,
Bélgica, Brasil, Chile, Grécia, Índia, Irlanda, Coreia do Sul, Espanha e Suíça entram na
Internet.
● 1991 – Gopher foi lançado na Universidade de Minnesota.
● 1992 – Foi inventada a WWW (World Wide Web) por Tim Berners-Lee, no CERN
(Laboratório Europeu de Física de Partículas), em Gênova. A ferramenta de procura no
espaço Gopher, VERONICA, é lançada pela Universidade de Nevada. O número de
servidores é agora de um milhão. Camarões, Chipre, Equador, Estônia, Kuwait,
Luxemburgo, Eslováquia, Eslovénia, Venezuela, Antártida, Letônia, Malásia e Tailândia
ligam-se à Internet.
● 1993 – O Mosaic, de Marc Andreessen foi lançado pelo Centro Nacional de Aplicações
de Supercomputação dos Estados Unidos (NCSA) e torna-se a primeira implementação
de um “browser” para a Internet correr em ambientes Windows, Unix e Macintosh. É
criado o InterNIC pela Fundação Nacional de Ciência Americana. A Casa Branca e as
Nações Unidas passam a estar on-line. Bulgária, Costa Rica, Egito, Fiji, Gana, Guam,
Indonésia, Cazaquistão, Quénia, Liechtenstein, Peru, Romênia, Federação Russa, Turquia,
Ucrânia, Ilhas Virgens e Emirados Árabes Unidos ligam-se à rede.
● 1994 – Começou a funcionar o First Virtual, o primeiro banco exclusivamente acessível
pela Internet. Jim Clark e Marc Andreessen fundam a Mosaic Communications Corp.,
que origina a Netscape Communications Corp. Surge a primeira estação de rádio
transmitida via Internet. São lançados o Netscape Navigator e o respectivo software de
servidor. O número de servidores na net ultrapassava os três milhões. Argélia, Arménia,
Bermuda, Burkina Faso, China, Colômbia, Polinésia Francesa, Líbano, Lituânia, Macau,
Marrocos, Nova Caledônia, Nicarágua, Nigéria, Panamá, Filipinas, Senegal, Sri Lanka,
Suazilândia, Uruguai, Uzbequistão, Jamaica e Jordânia passam a usar a rede.
ARPANET/ Internet celebra seu 25º aniversário. Aparecimento das primeiras páginas de
comércio eletrônico. Localidades começam a conectar-se diretamente à Internet. WWW
supera a Telnet para se tornar o segundo serviço mais popular da rede (atrás da FTP),
baseado em porcentagem de distribuição do tráfego de pacotes e em bytes, na NSFNET.
Os dez principais domínios por servidor #: com, edu, uk, gov, de, ca, mil, au, org, net.
● 1995 – Os dez principais domínios por servidor #: com, edu, net, gov, mil, org, de, uk, ca,
au. Tecnologias do Ano: WWW,mecanismos de procura. Tecnologias Emergentes: Código
móvel (JAVA, JAVAscript), ambientes virtuais (VRML), ferramentas de colaboração
(Collaborative tools). A NSFNET volta a assumir um caráter exclusivamente acadêmico
depois do tráfego de “backbone” da Internet passar para as mãos dos ISP comerciais.
Serviços on-line tradicionais começam a oferecer acesso à Internet. As ações do Netscape
atingem valores recordes. A WWW ultrapassa o FTP em volume de tráfego na Internet.
Lançamento do MS Internet Explorer 2.0 para Windows 95. James Gosling e uma equipe
de programadores da SUN Microsystems lançam o Java – linguagem de programação
orientada para a Internet. Entram na rede a Etiópia, Costa do Marfim, Cook Islands,
Cayman Islands, Anguilla, Gibraltar, Vaticano, Kiribati, Kyrgyzstan, Madagáscar,
Maurícias, Micronésia, Mônaco, Mongólia, Nepal, Nigéria, Samoa Oriental, San Marino,
Tanzânia, Tonga, Uganda e Vanuatu.
● 1996 – É lançado o Netscape Navigator 2.0, que se torna o primeiro web browser a
suportar o JavaScripts. Na rede, três empresas de serviço de procura lançam as suas ações
no mercado – são elas a Yahoo, a Excite e Lycos. Bill Clinton aprova leis de
telecomunicações no sentido de penalizar a distribuição de conteúdo “inadequado” na
Internet. A Internet pela TV – web TV – é uma realidade. Os motores de pesquisa, a
Internet Phone e a linguagem Java são as tecnologias do ano. A Internet fica com quase
dez milhões de servidores on-line, além de aproximadamente quarenta milhões de
utilizadores em 150 países. Qatar, República Centro-Africana, Omã, Norfolk Island,
Tuvalu, Polinésia Francesa, Síria, Aruba, Camboja, Guiana Francesa, Eritreia, Cabo
Verde, Burundi, Benin, Bósnia-Herzegovina, Andorra, Guadalupe, Guernsey, Isleof Man,
Jersey, Laus, Maldivas, Ilhas Marshall, Mauritânia, Ilhas Marianas do Norte, Ruanda,
Togo, Iémen e Zaire ligam-se à rede.
● 1997 – Tecnologias emergentes: Push, Streaming Media. AAmerica On-line Inc. adquire a
Netscape Communications Corporation por um valor cifrado em 4,2 bilhões de dólares.
Os selos postais eletrônicos tornam-se uma realidade com o US Postal Service, que
permite a compra e download para impressão a partir da web. A Microsoft é processada
pela justiça americana, com base na Lei Antitruste, sob a alegação de prejudicar a
concorrência, pois o Windows 98 distribui gratuitamente o “browser” Internet Explorer.
As tecnologias mais relevantes desse ano foram o e-Commerce, e-Auctions, Portais de
Entrada e o XML.
● 1998 – Tecnologias do ano: Comércio Eletrônico, Leilões on-line, Portais. A Abilene, a
rede Internet 2, atravessa o Atlântico e conecta-se a NORDUnet e a SURFnet. Surge a
ISTF – Internet Societal Task Force, liderada por Vint Cerf, com o objetivo de promover
questões sociais e preocupações relacionadas com a Internet. As tecnologias do ano foram
o e-Trade, On-line Banking e o MP3. A Palestina entra na rede.
● 2000 – Avanços na Internet, aumento do número de usuários, Internet para dispositivos
móveis.
● Dias atuais – A Internet continua a expandir constantemente no planeta. O número de
serviços aumenta sem precedentes.
1.2. O que é PHP?
O PHP é a linguagem de desenvolvimento da web escrita por e para desenvolvedores.
PHP significa: Hypertext Preprocessor ou Pré-processador de hipertexto. O produto é
originalmente chamado de Personal Home Page Tools, e muitas pessoas ainda pensam que é
isso que o acrônimo representa, mas conforme ocorre a sua expansão em escopo, um nome
novo e mais apropriado torna-se necessário, embora GNU-ishly recursivo tenha sido
selecionado pelo voto da comunidade. O PHP está atualmente em sua sétima reescrita
principal, chamada PHP 7 ou simplesmente PHP.
O PHP é uma linguagem de “script” usada para o desenvolvimento de aplicações que
existem e atuam ao lado do servidor. Embora essa utilização seja a mais comum, ela pode ser
incorporada em HTML ou usada como um binário autônomo também. Os produtos
proprietários nesse “nicho” são as Active Server Pages da Microsoft, o Macromedia
ColdFusion e Java Server Pages da Sun. Alguns jornalistas de tecnologia costumavam chamar
o PHP de “código aberto ASP”, porque a sua funcionalidadeé semelhante à do produto da
Microsoft. Entretanto essa formulação é enganosa, já que o PHP foi desenvolvido antes do
ASP. Nos últimos anos, o PHP e o Java, ao lado do servidor, ganham força, enquanto o ASP
perde o “mindshare”, por isso, essa comparação não parece mais apropriada.
No momento, podemos pensar o PHP como uma coleção de tags super HTML ou
pequenos programas que são executados dentro de suas páginas da web – exceto ao lado do
servidor, antes de ser enviado para o navegador. Por exemplo, você pode usar o PHP para
adicionar cabeçalhos e rodapés comuns a todas as páginas de um site ou para armazenar
dados enviados por formulários em um banco de dados. Estritamente, o PHP tem pouco a ver
com layout, eventos, manipulação de DOM On-the-fly ou com qualquer coisa que uma página
da web possa ter. Na verdade, a maior parte do que o PHP faz é invisível para o usuário final.
Alguém que olhe para uma página com essa linguagem não será necessariamente capaz de
dizer se ela não foi escrita apenas em HTML, porque, de modo geral, o resultado do PHP é
HTML.
O PHP é um módulo oficial do Apache HTTP Server, o servidor web líder de
mercado que executa cerca de 67% da World Wide Web (de acordo com a amplamente citada
pesquisa de servidor da web da Netcraft). Isso significa que o mecanismo de “script” PHP
pode ser incorporado ao próprio servidor web, levando a um processamento mais rápido,
alocação de memória mais eficiente e manutenção simplificada. Como o Apache Server, o
PHP é totalmente multiplataforma, o que significa que é executado em vários servidores indo
do Linux, passando pelo Windows e chegando até o Mac OS (a partir da versão X). Todos os
projetos sob a égide da Apache Software Foundation – incluindo o PHP – são programas
open source.
1.2.1. Uma breve história do PHP
No outono de 1994, o PHP é criado por Rasmus Lerdorf, engenheiro de software,
membro da equipe Apache. A primeira parte do PHP é desenvolvida para uso pessoal no
final de 1994. As versões iniciais são um wrapper CGI que o ajuda a acompanhar as pessoas
que visitam o seu site pessoal. Já a primeira versão é disponibilizada no início de 1995,
conhecida como Ferramentas Pessoais de Página Inicial, cujo pacote, chamado Personal
Home Page Tools (também conhecido como PHP Construction Kit), surge como resposta à
demanda de usuários que haviam descoberto o seu trabalho por acaso ou por indicação.
Consistia em um mecanismo de análise muito simples, pois compreendia apenas alguns
macros especiais e vários utilitários comuns nas páginas iniciais da época, como um livro de
visitas, um contador, entre outros.
Depois disso, o analisador é reescrito em meados de 1995 e denominado PHP/FI
Versão 2. O FI surge por intermédio de outro pacote que Rasmus havia escrito, que
interpretava os dados do formulário HTML. Ele combina os “scripts” das ferramentas Personal
Home Page com o Form Interpreter, adicionando o suporte SQL. Com isso, o PHP/FI nasce.
Esse código cresce a um ritmo incrível, devido à contribuição das pessoas, até porque, em
meados de 1997, o PHP é usado por aproximadamente 50.000 sites em todo o mundo,
tornando-se, de maneira clara, grande demais para que qualquer pessoa o administre sozinha
(mesmo que fosse alguém tão concentrado e enérgico quanto Rasmus). Por isso, uma pequena
equipe de desenvolvimento principal começa a executar um projeto de modelo “benevolent
junta” e de código aberto, com contribuições de desenvolvedores e usuários em todo o mundo,
por exemplo, Zeev Suraski e Andi Gutmans, os dois programadores israelenses que
desenvolveram os analisadores PHP3 e PHP4, também generalizam e estendem o seu trabalho
sob a rubrica de Zend.com (Zeev, Andi, Zend).
O quarto trimestre de 1998 inicia um período de crescimento explosivo para PHP, já
que todas as tecnologias de código aberto desfrutam, nesse momento, de uma publicidade
massiva. Em outubro de 1998, de acordo com o melhor palpite, pouco mais de 100.000
domínios únicos usavam o PHP de alguma forma. Pouco mais de um ano depois, o PHP
quebra a marca de um milhão de domínios. No primeiro semestre de 2000, o número
aumentou para cerca de dois milhões de domínios e, no decorrer do século, aproximadamente
15 milhões de servidores da web públicos (no sentido de software, não o sentido de hardware)
têm o PHP instalado. As implementações de PHP público variam de sites de mercado de
massa, como o Excite Webmail e o Indianapolis 500 – Indianapolis Motor Speedway, que
oferecem milhões de visualizações de página por dia, por meio de sites “Nicho de massa”,
como o Sourceforge.net e Epinions.com, que tendem a ter maiores necessidades de
funcionalidade e centenas de milhares de usuários para sites de e-commerce e de livros como a
Harvard.com emuito mais.
Já em sua versão PHP 5, há o esforço de oferecer algo que muitos usuários têm
clamado nos últimos anos: funcionalidade muito melhorada de programação orientada a
objetos (OOP). O PHP, anteriormente, concordava com o modelo de programação de objetos
com funções que permitiam que os seus programadores obtivessem resultados e informações
de modo mais familiar. No entanto, esses esforços ficam aquém do ideal de muitos
programadores, pois forçar o PHP a construir sistemas totalmente orientados a objetos pode
ser problemático, gerando, muitas vezes, resultados não intencionais e prejudiciais para o
desempenho. Por isso, o modelo de objeto reconstruído pela versão 5 aproxima o PHP de
outras linguagens orientadas para objetos, como o Java e C ++, oferecendo suporte para
recursos como a sobrecarga, interfaces, variáveis e métodos de membros privados e outras
construções padrões.
Quanto à versão 6, ela não chegou e nem chegará a ser lançada como uma versão do
PHP, pois o seu objetivo é o de corrigir as falhas, apontadas na versão 5.2 e versões anteriores,
que não tinham o suporte nativo Unicode. Em 2005, um grande grupo de trabalho é
construído para desenvolver uma versão PHP 6 com suporte, mas, em 2009, é lançada a
versão 5.3 com algumas funcionalidades, previstas para o PHP 6, só que sem o suporte
Unicode. Então, os recursos que supostamente seriam incorporados, na versão PHP 6, são
integrados a partir das versões 5.3 e 5.4, sendo a razão pela qual o PHP 6 deixou de fazer
sentido como uma versão principal. Contudo, esse assunto não foi pacífico, nem chegou a ser
uma matéria discutida entre os programadores. Assim, desde 2014, a versão posterior a 5.x,
que deveria ser designada como PHP 7, acaba sendo adotada.
Por sua vez, a versão PHP 7 é lançada, definitivamente, no final de 2015. Apesar da
introdução dessa versão, espera-se que demore algum tempo até que ela seja usada, haja vista
que há um período de adaptação. Contudo, para facilitar o aprendizado, a versão PHP 5 será
utilizada para o conteúdo e os exemplos apresentados nesta Unidade.
2. TIPOS DE “ARRAYS”
2.1. Os Usos de “Arrays”
Um “array” é uma coleção de variáveis indexadas e agrupadas em uma única super
variável que é facilmente referenciada. Oferece uma maneira fácil de passar vários valores
entre linhas de código, funções e até mesmo páginas. Vale a pena listar as maneiras comuns
pelas quais os “arrays” são usados no código PHP real. Muitas variáveis de ambiente PHP
estão embutidas na forma de matrizes, como $_SESSION, com todos os seus nomes e valores
propagados de uma página para a outra, mediante o mecanismo de sessão do PHP.
Por isso, se você quiser acessá-las, é preciso entender, no mínimo, como fazer
referência às matrizes, pois a maioria das funções de banco de dados transporta as suas
informações por intermédio de matrizes, criando um pacote compacto de bloco de dados
arbitrário. É fácil transmitir conjuntos inteiros de argumentos de formulário HTML entre uma
página e outra em uma única matriz, sendo os “arrays” um bom contêiner para fazer
manipulações (classificação, contagem, assim por diante) de todos os dados que você
desenvolve ao executar o “script” de uma única página. Quasetoda situação exige que um
número de dados seja empacotado e tratado como é apropriado para um “array” PHP.
2.2. A propósito, o que são “Arrays” PHP?
“Arrays” PHP são matrizes associativas com um pouco de maquinário extra inserido.
A parte associativa significa que as matrizes armazenam os valores de elemento com valores
de chave, ao invés de uma ordem de índice linearmente restrita. Se você viu “Arrays” em
outras linguagens de programação, é provável que elas tenham sido matrizes vetoriais, em vez
de matrizes associativas – a seguir faremos uma explicação sobre essa diferença.
Se você armazenar um elemento em uma “Arrays” associativa com uma chave, será
preciso o valor da chave para recuperá-lo mais tarde. Por exemplo, o armazenamento é assim:
$state_location [‘San Mateo’] = ‘California’;
Ele armazena o elemento “California” na variável de array $state_location, em
associação à chave de pesquisa “San Mateo”. Após isso ter sido armazenado, você poderá
procurar o valor armazenado, usando a chave, como:
$state = $state_location [‘San Mateo’]; // equals ‘Califórnia’;
Simples, não?
Se tudo o que você deseja no “Arrays” é armazenar pares de chave/valor, as
informações anteriores é tudo o que você precisa saber. Da mesma forma, se você associar
uma ordem numérica a um monte de valores, tudo o que você precisa fazer é usar inteiros
como valores chave, como no código a seguir:
$meu_array [1] = “A primeira coisa”;
$meu_array [2] = “A segunda coisa”; // e assim por diante...
Em primeiro lugar, esclarecemos que não apenas variáveis escalares, mas todas as
variáveis no PHP são denotadas com um $ inicial. Em segundo, mesmo que a matriz seja
associativa, os índices são agrupados por colchetes ([ ]) ao invés de chaves ({ }). Por fim, não há
tipo de matriz ou lista indexada apenas por números inteiros. A convenção é usar inteiros
como índices associativos, até porque o próprio “array” mantém uma ordenação interna para
umaiteração.
Além do mecanismo que possibilita esse tipo de associação de chave/valor, os
“arrays” rastreiam algumas outras coisas nos bastidores. Por causa disso, às vezes os
tratamos como outros tipos de estruturas de dados. Como veremos, os “arrays” podem ser
multidimensionais, pois podem armazenar valores em associação com uma sequência de
valores-chave, não apenas em uma única chave. De maneira automática, as matrizes também
mantêm uma lista ordenada dos elementos que foram inseridos nelas, independentemente de
quais são os valores-chave, o que possibilita tratar matrizes como listas vinculadas. Em geral,
revelaremos o funcionamento desse maquinário extra conforme exploramos as funções que o
utilizam.
2.3. Criando “Arrays” Simples
Existem três maneiras principais de criar um “array” no “script” PHP: atribuindo um
valor em um (criando-o implicitamente), usando a construção array() e chamando uma função
que retorna um “array” como o seu valor.
2.4. Atribuição Direta
A maneira mais simples de criar um “Array” é agir como se uma variável já fosse
uma matriz, atribuindo-lhe um valor, como segue:
$meu_array [1] = “A primeira coisa em meu array que acabei de criar”;
Se $meu_array for uma variável não vinculada (ou vinculada a uma variável “no-
narray”), antes dessa instrução, ela será, depois, uma variável vinculada a uma matriz com um
elemento. Se esse não for o caso, a matriz será armazenada em associação com a chave inteira.
Se nenhum valor estiver associado a esse número, um novo “array” de matriz será criado para
mantê-lo; e se o valor estiver associado a 1, o valor anterior será sobrescrito. Você também pode
atribuí-lo a uma matriz, omitindo o índice inteiramente como em $meu_array[ ].
2.5. A Construção “Array()”
A outra maneira de criar um “array” é através da Construção Array(), que cria um
novo “array” a partir da especificação de seus elementos e chaves associadas. Em sua versão
mais simples, array() é chamado sem argumentos, o que cria um novo “array” vazio. Em sua
próxima versão mais simples, array() pega uma lista de elementos a serem armazenados,
separada por vírgula, sem qualquer especificação de chaves. O resultado é que os elementos
são armazenados na matriz, em ordem especificada, e atribuídos a chaves inteiras, começando
com zero. Por exemplo, a declaração:
$cesto_de_frutas = array (‘maça’, ‘laranja’, ‘banana’, ‘pera’);
faz com que a variável $cesto_de_frutas seja atribuída a um “array” com quatro elementos
“String” (maçã, laranja, banana, pera), com os índices 0, 1, 2 e 3, respectivamente. Além disso,
o “array” se lembrará da ordem de armazenamento do elementos.
A atribuição para $cesto_de_frutas, então, tem exatamente o mesmo efeito que o
seguinte:
$cesto_de_frutas [0] = ‘maça’;
$cesto_de_frutas [1] = “laranja”;
$cesto_de_frutas [2] = “banana”;
$cesto_de_frutas [3] = “pera”;
Isso porque supomos que a variável $cesto_de_frutas estava desassociada da primeira
atribuição. O mesmo efeito também poderia ter sido obtido pela omissão dos índices na tarefa,
da seguinte forma:
$cesto_de_frutas [] = ‘maça’;
$cesto_de_frutas [] = “laranja”;
$cesto_de_frutas [] = “banana”;
$cesto_de_frutas [] = “pera”;
Nesse caso, o PHP assume, novamente, que você está adicionando elementos
sequenciais que devem ter índices numéricos, contados para cima, a partir de zero.
2.6. Especificando Índices Usando “Array()”
O exemplo simples de array(), na seção anterior, atribui índices aos nossos elementos,
que serão inteiros, contados para cima, a partir de zero. Acontece que o array() nos oferece
uma sintaxe especial para especificar quais devem ser os índices. Em vez de valores de
elementos separados por vírgulas, você fornece pares de valor-chave separados por vírgulas,
em que a chave e o valor são separados pelo símbolo especial =>.
Considere a seguinte declaração:
$cesto_de_frutas = array (0 =>’ maca ‘, 1 =>’ laranja ‘, 2 =>’ banana ‘, 3 =>’ pera ‘);
Essa avaliação tem exatamente o mesmo efeito que a nossa versão anterior – cada
“string” é armazenada na matriz sucessivamente, com os índices 0, 1, 2, 3, em ordem. Em vez
disso, no entanto, podemos usar exatamente a mesma sintaxe para armazenar esses elementos
com diferentes índices:
$cesto_de_frutas = array (‘vermelho’ => ‘maçã’, ‘laranja’ => ‘laranja’, ‘amarela’ =>
‘banana’ ‘verde’ => ‘pera’);
Isso nos dá os mesmos quatro elementos, adicionados ao nosso novo “array”, na
mesma ordem, mas, ao invés de números, são indexados por nomes de cores. Para recuperar o
nome do fruto amarelo, por exemplo, nós apenas avaliamos a expressão: $cesto_de_frutas
[amarela] // será igual a ‘banana’.
Finalmente, como dissemos anteriormente, você pode criar um “array” vazio,
chamando a função de “array” sem argumentos, por exemplo: $meu_array_vazio = array
();. Essa construção cria um “array” sem elementos, a qual pode ser útil para passar para uma
função que espera uma matriz como argumento.
2.7. Funções Retornando “Arrays”
A maneira final de criar um “array” em um “script” é chamar uma função que
retorna um “array”. Essa pode ser uma função definida pelo usuário, ou pode ser uma função
interna que faz um “array” via métodos internos ao PHP. Muitas funções de interação com
banco de dados, por exemplo, retornam seus resultados em “arrays” que as funções criam na
hora. Outras funções existem simplesmente para criar “arrays” úteis para ter funções
posteriores e para a sua manipulação. Uma delas é range(), que recebe dois inteiros como
argumentos e retorna uma matriz preenchida com todos os inteiros, inclusive, entre os
argumentos.
Em outras palavras: $meu_array = range (1,5) é equivalente a: $meu_array =
array (1, 2, 3, 4, 5).
2.8. Recuperando Valores
Depois de armazenarmos alguns valores em uma matriz, como podemos obtê-los
novamente?
2.8.1. Recuperando por índice
A maneira mais direta de recuperar um valor é pelo uso de seu índice. Se um valor
em $meu_array for armazenado no índice 5, $meu_array [5] deverá avaliar o valor
armazenado. Se $meu_array não tenha sido atribuído,nem armazenado com um índice de 5,
$meu_array [5] se comporta como uma variável não ligada.
2.8.2. A construção “list()”
Há várias outras maneiras de recuperar valores de “arrays” sem usar chaves, sendo que
a maioria explora o fato de que os “arrays” estão registrando, silenciosamente, a ordem na
qual os elementos são armazenados. Um desses exemplos é “list()”, que é usado para atribuir
vários elementos de matriz às variáveis em sucessão. Suponha que as duas instruções a seguir
sejam executadas:
$cesto_de_frutas = array (‘maca’, ‘laranja’, ‘banana’); lista ($fruta_vermelha,
$fruta_laranja) = $cesto_de_frutas;
Isso atribui o “String” “maçã” à variável $fruta_vermelha; e a “string” “laranja” à
variável $fruta_laranja (sem atribuição de “banana”, porque não fornecemos variáveis
suficientes). As variáveis em “list()” serão atribuídas aos elementos da matriz, na ordem em
que elas foram, originalmente, armazenadas na matriz. Observe o comportamento incomum
aqui – a construção “list()” está ao lado esquerdo do operador de atribuição (=), onde
normalmente encontramos apenas variáveis. Em certo sentido, “list()” é o oposto ou o inverso
de “array()” porque “array()” empacota seus argumentos em um “array”, enquanto “list()”
desmonta o “array” novamente em atribuições de variáveis individuais.
Avalie:
list ($primeiro, $segundo) = array ($primeiro, segundo);
Agora perceba que os valores originais de $primeiro e $segundo serão atribuídos a
essas variáveis novamente, após terem sido armazenados brevemente em uma matriz.
2.9. “Arrays” Multidimensionais
Até agora, os exemplos de “array” que vimos foram todos unidimensionais, isto é,
com apenas um nível de chaves entre colchetes. No entanto, o PHP pode suportar facilmente
“arrays” multidimensionais, com números arbitrários de chaves. Assim como nos “arrays”
unidimensionais, não há necessidade de declarar nossas intenções com antecedência – a
primeira referência a uma variável “array” pode ser uma atribuição como:
$multi_array [1] [2] [3] [4] [5] = “Tesouro profundamente enterrado”;
Ela correponde a uma matriz de cinco dimensões com chaves sucessivas que
acontecem, nesse caso, para ser cinco inteiros sucessivos.
Na verdade, pensar em matrizes como multidimensionais torna as coisas mais
confusas do que precisam ser. Em vez disso, lembre-se de que os valores armazenados em
matrizes podem ser matrizes tão legítimas quanto podem ser as cadeias ou os números. A
sintaxe de índice múltiplo, no exemplo anterior, é simplesmente uma maneira concisa para
referir-se a um “array” (quadridimensional) que é armazenado com uma chave de 1 in
$multi_array, que, por sua vez, tem um “array” (tridimensional) armazenado nele, assim por
diante. Note também que você pode ter diferentes profundidades de referência em diferentes
partes da matriz, como em:
$multi_level_array [0] = “uma string simples”; $multi_level_array [1] [‘contains’] =
“um String armazenado mais profundamente”;
A chave “integer” de 0 armazena um “String”, enquanto a chave de 1 armazena uma
matriz que, por sua vez, tem um “String” nela. No entanto, você não pode continuar com esta
atribuição:
$multi_level_array [0] [‘contém‘] = ‘outra string profunda‘;
Sem o resultado perdido, a primeira atribuição será “um String simples”. A chave de
0 pode ser usada para armazenar um “String” ou outra “array”, mas não ambas ao mesmo
tempo. Se nos lembrarmos que “arrays” multidimensionais são simplesmente “arrays” que
têm outros “arrays” armazenados, seria mais fácil ver como o construtor de criação de
“array()” se generaliza.
De fato, essa tarefa é apenas aparentemente complicada. Veja:
$cornucopia = array (‘fruta’ =>
array (‘vermelho’ => ‘maçã’, ‘laranja’ => ‘laranja’, ‘amarelo’ => ‘banana ‘,
‘ verde ‘=>’ pêra ‘),
‘flor’=>
array (‘ vermelho ‘=> ‘ rosa ‘, ‘ amarelo ‘=>’ girassol ‘,
‘ púrpura ‘=>’ íris ‘));
Esse arranjo é simplesmente um “array” que possui dois valores armazenados em
associação a chaves. Cada um desses valores é um “array” em si. Depois de termos feito o
array, podemos referenciá-lo assim:
$tipo_desejado = ‘flor’; $cor_desejada = “roxo”; print (“O $cor_desejada
$tipo_desejado é” $cornucopia [$tipo_desejado [$cor_desejada]);
Veja a saída do navegador:
A flor roxa é iris
Há um motivo pelo qual usamos o operador de concatenação de “String ( . )” na
declaração impressa anterior, em vez de simplesmente incorporar a $cornucopia
[$tipo_desejado] [$cor_desejada ] em nossa sequência de impressão, como fazemos com
outras variáveis. A análise de cadeia de caracteres PHP3 pode ser confundida por vários
índices de matriz em uma cadeia de aspas, portanto, ela precisa ser concatenada
separadamente. O PHP, desde a versão 4, lida com isso de uma maneira melhor, pois você
estará seguro ao inserir referências de “array” em um “String”, desde que você coloque a
referência entre chaves, assim:
print (‘O que queremos é {$cornucopia [$tipo_desejado [ $cor_desejada]} ‘);
Finalmente, observe que não há grande penalidade por indexação indevida em um
“array” multidimensional, quando tentamos recuperar algo. Caso nenhuma chave seja
encontrada, a expressão será tratada como uma variável não vinculada. Então, tentaremos o
seguinte:
$tipo_desejado = “fruta”;
$cor_desejada = “roxo”; // uh-oh, nós não guardamos nenhuma ameixa
print (“$cor_desejada $tipo_desejado é” $cornucopia [$tipo_desejado ]
[$cor_desejada ]);
3 . TIPOS DE OPERADORES
3.1. Operadores Aritméticos
Os operadores aritméticos, elencados no Quadro 01, só podem ser utilizados quando
eles são números (“integer” ou “float”). Se for de outro tipo, os seus valores serão convertidos
antes da realização da operação.
Quadro 1 – Operadores Aritméticos. Fonte: O autor.
3.2. Operadores de “Strings”
Existe apenas um operador de cadeia de caracteres – o operador de concatenação
(“.”). Por exemplo:
$a = “Olá”;
$b = $a.”Mundo!”;
// agora
$b = “Olá mundo”!
3.3. Operadores deAtribuição
O operador de atribuição básico é “=”. A sua primeira inclinação pode ser pensar
nisso como “igual a”, mas não. Isso significa que o operando à esquerda é definido como um
valor da expressão nos direitos (isto é, “é definido como”). Nesse sentido, o valor de uma
expressão de atribuição é o valor atribuído. Ou seja, o valor de “$a = 3” é 3, permitindo que
você faça algumas coisas complexas:
$a = ($b = 4) + 5; // $a é igual a 9 agora e $b foi definido como 4.
Além do operador de atribuição básico, existem “operadores combinados” para todos
os operadores aritméticos e para os de cadeia de caracteres binários, que permitem o uso de
um valor em uma expressão. Em seguida, o valor do resultado dessa expressão é definido. Por
exemplo:
$a = 3;
$a + = 5;
Exemplo Nome Resultado
$a + $b Adição Soma de $a e $b.
$a - $b Subtração Restante de $b subtraído de $a.
$a * $b Multiplicação Produto de $a e $b.
$a / $b Divisão Dividendo de $a e $b.
$a% $b Modulus Restante de $a dividido por $b.
// define $a para 8, como se tivéssemos dito:
$a = $a + 5;
$b = “ Hello”;
$b. = “There!”;
// define $b para “Hello There!”, assim como $b = $b. “ There! ”.
3.4. Operadores “bit a bit”
Operadores “bit a bit” permitem que você ative ou desative “bits” específicos dentro
de um inteiro. Confira os exemplos expostos no Quadro 2.
Exemplo Nome Resultado
$a & $b And Os “bits” definidos em $a e $b estão definidos.
$a | $b Or Os “bits” definidos em $a ou $b estão definidos.
~ $a Not Os “bits” definidos em $a não estão definidos e vice-
versa.
$a << $b Shift left Mude os “bits” $a e $b passos para a esquerda (cada
passo significa “multiplicar por dois”)
$a >> $b Shift right Mude os “bits” $a e $b passos para a direita (cada passo
significa “dividir por dois”)
Quadro 2 – Operadores “bit a bit”. Fonte: O autor.
3.5. Operadores lógicos
Sobre os operadores lógicos, observe o Quadro 3, com os seus respectivos exemplos.
Exemplo Nome Resultado
$a and $b And Verdade se ambos $a e $b são verdadeiros.
$a or $b Or Verdade se $a ou $b for verdadeiro.
$a xor $b OrVerdadeiro se $a ou $b for verdadeiro, mas não ambos.
! $a Not Verdade se $a não for verdadeiro.
$a && $b And Verdade se ambos $a e $b são verdadeiros
$a || $b Or Verdade se $a ou $b for verdadeiro.
Quadro 3 – Operadores lógicos. Fonte: O autor.
Você notou as duas variações diferentes entre os operadores And e Or ? Isso ocorre
porque eles operam em precedentes diferentes.
3.6. Operadores de Comparação
Os operadores de comparação, como o próprio nome sugere, permite comparar dois
valores, como você pode ver no Quadro 4.
Quadro 4 – Operadores de comparação. Fonte: O autor.
3.7. Operadores de Expressão Condicional
Outro operador condicional é o operador: “ ?: ” (ou trinário). Ele opera como em C e
em outras linguagens. A expressão: (expr1)? (expr2): (expr3); retorna para “expr2”, se
“expr1” for avaliada como verdadeira, e “expr3”, se “expr1” for avaliada como falsa.
3.8. Operadores de Incremento e Decremento
Os operadores de incremento e decremento podem ser utilizados de duas formas: antes
ou depois da variável, como elencado no Quadro 5.
Quadro 5 – Operadores de Incremento e Decremento. Fonte: O autor.
Isso significa que, quando utilizado antes, o valor da variável retorna antes do
incremento ou decremento, quando utilizado depois, o valor da variável retorna já
incrementado ou decrementado, como pode ser observado nos seguintes exemplos:
$a = $b = 10; // $a e $b recebem o valor 10.
$c = $a++; // $c recebe 10 e $a passa a ter 11.
$d = ++$b; // $d recebe 11, valor de $b já incrementado.
3.9. Operadores de Ordem de Precedência dos Operadores
A precedência de um operador é especificada como “estreitamente” ao unir duas
expressões. Por exemplo, na expressão 1 + 5 * 3, a resposta não é 18, mas sim 16, porque o
operador de multiplicação (“*”) tem uma precedência maior do que o operador de adição
(“+”). Dito isso, o Quadro 6 lista a precedência dos operadores, relacionando os operadores de
precedência mais baixa, que são listados primeiro.
Quadro 6 – Operadores de Ordem de Precedência dos Operadores. Fonte: O autor.
SAIBAMAIS
Caro(a) aluno(a), para sanar possíveis dúvidas e ter uma visão mais ampla sobre a
programação para Internet, pensando em seu aprimoramento profissional, você poderá ler o
artigo Como criar minha primeira classe em PHP, disponível na plataforma DevMedia. A
partir desse conteúdo, você aprenderá a criar sua primeira classe na linguagem PHP (PHP
Class), bem como a usar herança e interfaces, métodos, atributos e propriedades. Você
encontrará esse texto disponível em: https://www.devmedia.com.br/como-criar-minha-
primeira-classe-em-php/38895. Acesso em: 20 out. 2019.
REFLITA
O grande inventor Alan Kay, em 1984, afirmou que “O futuro não é definido em uma
trilha. É algo que podemos decidir. Na medida em que não violamos quaisquer leis
conhecidas do universo, provavelmente, podemos fazê-lo funcionar da maneira que
queremos”. Dito isso, caro(a) aluno(a), devemos refletir de que maneira podemos pensar a
programação, criar e superar expectativas, para que sempre façamos o nosso melhor?
Lembre-se: seja o melhor que você puder ser!
Para isso, o aprimoramento deve ser constante.
Fonte: Citações e frases famosas. Disponível em: https://citacoes.in/citacoes/1841701-alan-
kay-the-future-is-not-laid-out-on-a-track-it-is-somet/. Acesso em: 21 out. 2019.
INDICAÇÃO DE LEITURA
Veja como integrar o PHP ao MySQL, um dos bancos de dados mais usados no mundo. A
dupla PHP e MySQL é usada por diversos tipos de aplicações e sites, de blogs e até portais de
notícias e grandes redes sociais. Para tanto, você poderá fazer a leitura da obra:
BENTO, E. J. Desenvolvimento web com PHP e MySQL. São Paulo: Casa do Código, 2013.
INDICAÇÃO DE VÍDEO
Existem muitas razões para usar o PHP para a programação de aplicações web. Em
primeiro lugar, é uma linguagem livre, sem taxas de licenciamento, com um custo mínimo.
Além disso, você tem a liberdade para escolher o sistema operacional e de servidor web. Para
ajudá-lo a planejar os seus estudos, separamos aqui um DevCast em que há algumas dicas
para quem está iniciando, disponível em: https://www.devmedia.com.br/guia/programador-
php/38193. Acesso em: 15 out. 2019.
https://www.devmedia.com.br/guia/programador-php/38193
https://www.devmedia.com.br/guia/programador-php/38193
CONSIDERAÇÕES FINAIS
Caro(a) aluno(a), chegamos ao final desta Unidade! Ela foi preparada com muito
carinho para você. Nela, alguns conceitos da programação para Internet foram apresentados,
como os tipos de “Arrays”, de operadores, além de uma introdução à programação web, feita
a partir de uma retrospectiva cronológica da Internet.
O conteúdo que foi apresentado na Unidade II foi somente a ponta do iceberg. Por
isso, nas próximas unidades, você poderá aprofundar-se mais ainda em conceitos e práticas
da programação para Internet.
Estaremos juntos na próxima unidade.
Até lá!
UNIDADE III – TIPOS DE FUNÇÕES E FORMULÁRIOS EM PHP
INTRODUÇÃO
Na Unidade III, iniciaremos os estudos com uma breve introdução aos tipos de
funções. Para realizarmos esse percurso, você verá a definição de uma função e os seus
argumentos. Além disso, haverá um estudo aprofundado e específico sobre o recebimento de
formulários e a sua utilização na programação para Internet. Portanto, continue seus estudos,
pois preparamos muita coisa boa, com um conteúdo preparado justamente para proporcioná-
lo mais conhecimentos e um direcionamento para a sua carreira profissional.
Então, vamos lá!
Agora é mão na massa!
1. TIPOS DE FUNÇÕES
1.1. Introdução à Função
O que é uma função?
Uma função é uma maneira de quebrar um pedaço de código e nomeá-lo, para que,
depois, você possa usá-lo em apenas uma linha de código. As funções são mais úteis quando
você utiliza o código em mais de um lugar, mas elas são proveitosas também em situações de
uso único, porque podem transformar o seu código em algo muito mais legível (CONVERSE;
PARK; MORGAN, 2004).
1.1.1. Definição de função
A sintaxe básica para definições de função tem a forma a seguir, expressa na Figura 1.
Figura 1 – Exemplo de definição de função. Fonte: O autor.
As definições de função têm quatro partes: 1) A função de palavra especial. 2) O nome
que você quer dar para a sua função. 3) A lista de parâmetros da função – variáveis de sinal de
dólar, separadas por vírgulas. 4) O corpo da função – um conjunto de instruções anexo. Além
disso, assim como os nomes de variáveis, o nome da função deve ser composto de letras,
números e sublinhados. Ele não deve começar com um número. Ao contrário dos nomes das
variáveis, os nomes das funções são convertidos para letras minúsculas antes de serem
armazenados internamente pelo PHP. Portanto, uma função é a mesma, independentemente da
capitalização.
Segue a versão curta do que acontece quando uma função é definida pelo usuário:
 O PHP procura uma função pelo seu nome (você receberá um erro caso a função ainda
não tenha sido definida).
 O PHP substitui os valores dos argumentos de chamada (ou os parâmetros reais) pelas
variáveis na lista de parâmetros da definição (ou nos parâmetros formais).
 As declarações são executadas no corpo da função. Quando alguma das instruções
executadas for uma instrução de retorno, a função para e retorna o valor fornecido,
senão a função será concluída após a execução da última instrução, sem retornar um
valor.
1.2.Exemplo de Definição de Função
Como exemplo de definição de função, imagine que temos um código que ajuda
os compradores de supermercado a decidirem qual é o tamanho de refrigerante engarrafado
que compensa ser comprado. Isso quando, em algum momento, esses consumidores
rotineiramente usam os seus navegadores da web para acessar o nosso prático site de
comparação de preços.
Figura 2 – Exemplo de definição de função. Fonte: O autor.
A Figura 2 apresenta o código do exemplo, esclarecendo como a comparação pode
acontecer em nosso site o tempo todo. Ao observá-lo, perceba que uma boa prática de
programaçãoé propiciar uma função reutilizável. Assim, uma maneira de fazer isso seria a
seguinte reescrita:
Figura 3 – Exemplo de definição de função reescrita. Fonte: O autor.
Nossa função melhor_negocio, apresentada na Figura 3, abstrai as três linhas do
código anterior que fizeram a aritmética e a comparação. Leva quatro números como
argumentos e retorna o valor de uma expressão booleana. Como acontece com qualquer
valor booleano, podemos incorporá-lo na parte de teste de uma instrução “if”. Embora essa
função seja maior que o código original, há dois benefícios para essa reescrita: 1) a função
é usada em vários lugares (salvando as linhas no geral); 2) a alteração é feita em apenas um
lugar, caso o cálculo seja alterado.
Alternativamente, se a única maneira de usarmos essas comparações de preço
fosse imprimir a transação preferida, poderíamos incluir, então, a impressão na função,
conforme Figura 4.
Figura 4 – Outro exemplo de definição de função. Fonte: O autor.
Nossa primeira função, a declaração de retorno, é usada para enviar de volta um
resultado booleano, usado em um teste “if”. A segunda função não tem declaração de
retorno, porque é usada para o efeito colateral de imprimir texto no navegador do usuário.
Quando a última declaração dessa função é executada, o PHP simplesmente passa a
executar uma próxima instrução após uma chamada de função.
1.2.1. Argumentos da função
As informações podem ser passadas para as funções através da lista de argumentos,
que é uma lista delimitada por vírgulas de variáveis e/ou constantes. O PHP suporta a
passagem de argumentos por valor (o padrão), por referência e por valores de argumento
padrão. Listas de argumentos de tamanho variável não são suportadas, mas um efeito
similar pode ser obtido pela passagem de “arrays”. Um exemplo de argumento da função
pode ser visto na Figura 5.
Figura 5 – Exemplo de argumentos da função. Fonte: O autor.
1.3.1. Passagem de argumentos por referência
Por padrão, os argumentos da função são passados por valor. Se você alterasse o
valor do argumento dentro da função, ele não seria alterado fora da função, mas, se você
desejasse que uma função possa modificar os seus argumentos, você deveria passá-los por
referência. Além disso, se você quisesse que um argumento de uma função fosse sempre
passado por referência, você poderia preceder um & para o nome do argumento na
definição da função, como Figura 6.
Figura 6 – Exemplo de passagem de argumentos por referência. Fonte: O autor.
Por fim, quando você quiser passar uma variável por referência para uma função
que não faz isso por padrão, você pode preceder um & ao nome do argumento na chamada
de função, conforme a Figura 7.
Figura 7 – Exemplo de passagem de argumentos por referência. Fonte: O autor.
1.3.2. Argumentos com valores pré-definidos (padrão)
Uma função pode definir valores padrão no estilo C ++ para argumentos escalares
da seguinte forma:
Figura 8 – Exemplo de argumentos com valor padrão. Fonte: O autor.
A saída do fragmento da Figura 8 é:
Fazendo uma xícara de cappuccino. Fazendo uma xícara de café expresso.
O valor padrão deve ser uma expressão constante, não, por exemplo, uma variável
ou membro de classe. Observe que, ao usar um argumento padrão, qualquer padrão deve
estar ao lado direito de qualquer argumento não padrão, caso contrário, as coisas não
funcionarão como esperado. Dito isso, considere o seguinte trecho de código:
Figura 9 – Exemplo de Argumentos com Valores Padrão. Fonte: O autor.
A saída do exemplo expresso na Figura 9 é:
Atenção: Falta o argumento 2 na chamada demakeyogurt () em /usr/local/etc/httpd/
htdocs/php3test/functest.html on line 41 Fazendo uma tigela de framboesa.
Agora, compare o que foi exposto no trecho anterior com o que é apresentado na
Figura 10:
Figura 10 – Exemplo de Argumentos com Valores Padrão. Fonte: O autor.
A saída desse exemplo é:
Fazendo uma tigela de framboesa acidophilus.
2. RECEBENDO DADOS DE FORMULÁRIOS
2.1. Introdução ao Formulário PHP
O manuseio de formulários é um dos melhores recursos do PHP. Uma combinaçãode
HTML para construir um formulário de entrada de dados PHP e manipular os dados, bem
como um servidor de banco de dados para armazenar os dados estão no cerne de todos os
tipos de tarefas da web que são extremamente úteis.
2.2. Formulários HTML
Você já sabe muito do que precisa para manipular formas no PHP, mas existem
alguns pontos específicos a serem apresentados quando falamos de formulários:
● Sempre use um NOME para cada elemento de entrada de dados input, “select”, “textarea”,
assim por diante. O atributo “NAME” se tornará os nomes de variáveis PHP. Você não
poderá acessar os seus valores se não usar esse atributo para cada um deles.
● Um campo de formulário “NAME” não precisa ser igual ao nome do campo de banco de
dados correspondente, mas, em geral, essa é uma boa prática.
● Você poderá e deverá especificar um valor ao invés de deixar o HTML enviar o valor
padrão. Considere, se possível, substituir um valor numérico por um valor de texto, porque
o banco de dados é muito mais lento em sequências de caracteres correspondentes do que
de inteiros.
● O valor pode ser definido para os dados que você deseja exibir no formulário.
● Lembre-se de que você pode passar variáveis ocultas de um formulário para outro ou
página, usando os elementos de entrada de dados HIDDEN. Essa prática poderá ter
implicações de segurança negativas, mas, normalmente, ela não é pior do que armazenar os
dados em um “cookie”.
● Você pode passar múltiplas variáveis para um “array”, mas precisará informar o usuário
dessa possibilidade (CONVERSE; PARK; MORGAN, 2004).
Ademais, uma das dúvidas mais frequentes entre os desenvolvedores iniciantes em
PHP é como manipular os dados de formulário enviados para os “scripts” PHP, principalmente
osdados de “checkbox” e upload de arquivos. Para esclarecermos essa dúvida, é preciso saber
que um formulário HTML é apenas uma tela bonita, na qual os usuários poderão inserir
informações que serão interpretadas, de alguma maneira, por um “script” em um determinado
servidor. Em nosso caso, esse “script” seria um PHP.
Então, em primeiro lugar, o formulário deverá conter o botão Submit, através do
comando apresentado na Figura 11.
Figura 11 – Exemplo do comando de envio com o botão Submit. Fonte: O autor.
Segundo, todos os campos que serão tratados no “script” PHP deverão conter o
parâmetro “NAME”, caso contrário, os dados não serão passados para o “script” PHP,
conforme apresentado na Figura 12.
Figura 12 – Exemplo de “script” PHP com parâmetro “NAME”. Fonte: O autor.
Deperá de você a maneira como as informações do formulário serão passadas para
esse “script” PHP e como as informações do formulário enviado serão tratadas. Por isso, é
necessário que você conheça os dois métodos que poderão ser usados: GET e POST. O
recomendável para todos os formulários é sempre utilizar o método POST, pois, dessa modo,
os dados enviados não são visíveis em URL, ocultando importantes informações e permitindo
o envio de longas informações. Já o GET é totalmente o contrário disso.
Você deve estar se perguntando “como as informações chegam para o ‘script’ PHP?”
Figura 13 – Exemplo de formulário HTML. Fonte: O autor.
O formulário apresentado na Figura 13 utiliza o método POST para enviar as
informações em um “script.php”:
Figura 14 – Uso de método POST para envio de formulário. Fonte: O autor.
Na Figura 14, vemos um exemplo de como utilizar o formulário criado na Figura
13. Quando o formulário for enviado usando o método GET, você simplesmente usará
$_GET no lugar de $_POST.
Em vez de usar $_GET ou $_POST, você poderia escrever a variável com o
mesmo nome do campo de formulário (no exemplo, $campo1 e $campo2). Entretanto esse
uso não é recomendado, pois, se a diretiva “register_globals”, na configuração do seu PHP,
estiver desativada, as variáveis com nome dos campos dos formulários terão um valor
vazio. Sendo assim, uma possível

Continue navegando

Outros materiais