Você está na página 1de 176

Programao de Pgina WEB - PHP

Edio n1 - 2007

ROSEMARY FRANCISCO
Programao de Pgina WEB.indd 1 27/8/2007 13:22:09
2 Programao para Internet
SOCIESC - Sociedade Educacional de Santa Catarina
Apresentao
Este livro-texto contm a disciplina de Programao para Internet, cujo contedo disponibi-
lizar aos alunos conceitos fundamentais da programao de aplicaes para Internet. Por meio
deste material ser possvel conhecer uma das linguagens mais populares atualmente tanto em
ambientes estudantis quanto em ambientes comerciais.
Para sua melhor compreenso, o livro est estruturado em quatro partes. Na primeira parte, so
apresentados os conceitos bsicos da programao para WEB, que proporcionar um primeiro
contato com essa tecnologia. Ainda demonstraremos qual deve ser o ambiente de desenvolvi-
mento e como confgur-lo. A segunda parte engloba as principais caractersticas da linguagem
PHP e o desenvolvimento de vrios exemplos para melhor compreenso do funcionamento de
cada uma das caractersticas citadas. A terceira parte tratar de aspectos um pouco mais avan-
ados da linguagem PHP, conceitos como desenvolvimento Orientado a Objetos sero tratados
nesta parte. Por fm, na quarta e ltima parte do livro, demonstraremos como a linguagem PHP
interage com o banco de dados MySQL, tambm desenvolveremos um estudo de caso que per-
mitir a consolidao dos conhecimentos adquiridos nesta disciplina.
Lembre-se de que a sua passagem por esta disciplina ser tambm acompanhada pelo Sistema
de Ensino EaD Tupy, seja por correio postal, fax, telefone, e-mail ou Ambiente Virtual de
Aprendizagem. Sempre entre em contato conosco quando surgir alguma dvida ou difculdade.
Entre sempre em contato conosco, quando surgir alguma dvida ou difculdade. Toda a equipe
ter a maior alegria em atend-lo (a), pois o seu desenvolvimento intelectual e profssional,
nessa jornada, so o nosso maior objetivo.
Acredite no seu sucesso e bons momentos de estudo!
Equipe EaD Tupy
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
3
SUMRIO
CARTA DO PROFESSOR ............................................................................................. 4
CRONOGRAMA DE ESTUDOS .................................................................................... 5
PLANO DE ESTUDOS ................................................................................................... 6
AULA 1 VISO GERAL SOBRE A LINGUAGEM PHP............................................. 7
AULA 2 INTRODUO LINGUAGEM PHP..........................................................20
AULA 3 TIPOS DE DADOS SUPORTADOS PELA LINGUAGEM PHP.................. 33
AULA 4 TRABALHANDO COM VARIVEIS E CONSTANTES.............................. 49
AULA 5 OPERADORES DA LINGUAGEM PHP...................................................... 61
AULA 6 ESTRUTURAS DE CONTROLE. .............................................................. 73
AULA 7 CLASSES E OBJETOS............................................................................. 94
AULA 8 CONTROLE DE SESSO....................................................................... 106
AULA 9 TRABALHANDO COM BANCO DE DADOS MYSQL......................... 113
AULA 10 ESTUDO DE CASO: REVENDA DE AUTOMVEIS...............................120
REFERNCIAS ........................................................................................................ 175
Programao de Pgina WEB.indd 3 27/8/2007 13:22:09
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
4
Carta da Professora
O conhecimento como um jardim: se no for cultivado, no pode
ser colhido. (Provrbio Africano)
Caro(a) aluno(a),
Nos prximos captulos, ter incio a caminhada rumo ao conhecimento da
programao para Internet utilizando a linguagem de programao PHP. Linguagem
que foi concebida apenas para uso particular, hoje em dia expande-se tanto no meio
acadmico quanto em aplicaes comerciais que esto espalhadas pelo mundo.
Com o avano dos meios de comunicao e a rpida expanso dos servios
disponveis pela Internet, tornou-se imprescindvel aos prossionais de informtica,
principalmente aos desenvolvedores de aplicaes, o conhecimento de uma lingua-
gem que permita construir e disponibilizar diversas aplicaes para a Internet. A Inter-
net tem mudado muitos conceitos e o seu foco principal, hoje em dia, disponibilizar
servios de maneira rpida a qualquer momento e para qualquer usurio.
Assim, nosso objetivo maior, depois de percorrida esta caminhada, estarmos
inseridos no contexto do desenvolvimento das aplicaes para a Internet.
Durante esta caminhada, conheceremos a origem da linguagem PHP, seus
principais conceitos, sua sintaxe bsica e, ao nal, desenvolvendo um estudo de caso
com o intuito de praticarmos melhor o conhecimento adquirido.
Sendo assim, convido voc para, juntos, agora virtualmente, vencer este novo
desao"
Professora Rosemary Francisco
Programao de Pgina WEB.indd 4 27/8/2007 13:22:09
4 Programao para Internet
SOCIESC - Sociedade Educacional de Santa Catarina
Cronograma de Estudos
Acompanhe, no cronograma abaixo, os contedos das aulas e atualize as possveis datas de
realizao de aprendizagem e avaliaes.
Semana Carga horria Aula Data/ Avaliao
1
4 Viso Geral sobre a Linguagem PHP _/_ a _/_
8 Introduo a Linguagem PHP _/_ a _/_
8
Tipos de dados suportados pela Lingua-
gem PHP
_/_ a _/_
2
6 Trabalhando com variveis e constantes _/_ a _/_
6 Operadores da Linguagem PHP _/_ a _/_
8 Estruturas de Controle _/_ a _/_
3
12 Classes e Objetos em PHP _/_ a _/_
8 Controle de Sesso _/_ a _/_
4
6
Trabalhando com Banco de Dados
MySQL
_/_ a _/_
14 Estudo de Caso: Revenda de Automveis _/_ a _/_
5 Programao para Internet
SOCIESC - Sociedade Educacional de Santa Catarina
Plano de Estudos
Bases Tecnolgicas
Banco de dados para Internet; WEB sites dinmicos; aplicaes avanadas para Internet; Per-
formance de WEB sites.
Competncias
Planejar o desenvolvimento de web sites com acesso a banco de dados;
Planejar a construo de web sites dinmicos baseados em novas tecnologias;
Compreender os mtodos e tcnicas de desenvolvimento de aplicaes avanadas
para Internet;
Identifcar solues na otimizao e melhoria da performance de web sites.
Habilidades
Projetar e desenvolver web sites com acesso a banco de dados;
Construir web sites dinmicos;
Desenvolver aplicaes avanadas para Internet;
Implementar melhorias na performance de web sites.

Carga Horria: 120 horas
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
7
Aula 1
VISO GERAL SOBRE A LINGUAGEM
PHP
Nesta prxima aula voc ir conhecer como funcionam as
linguagens de programao para a Internet, tendo como
foco principal a linguagem PHP. Veremos o que PHP, como e
quando surgiu essa linguagem, quais as principais vantagens em
utilizar a linguagem PHP para desenvolver aplicaes para Internet
e como deve ser o ambiente de desenvolvimento para trabalhar
com a linguagem.
Bom estudo!
Objetivos da Aula
Ao !nal desta aula voc dever ser capaz de:
Identi!car o que uma arquitetura cliente-servidor;
Analisar as vantagens da utilizao da linguagem PHP
para programao para Internet;
Identi!car qual o ambiente que deve ser utilizado para
programar com PHP.
Contedos da Aula

Acompanhe os contedos desta aula. Se voc preferir, assi-
nale-os medida em que for estudando.
Introduo s Linguagens de programao para Internet;
O que PHP?;
Como surgiu a linguagem PHP?;
Vantagens da linguagem PHP;
Como trabalhar com PHP;
Exerccios propostos.
Programao de Pgina WEB.indd 7 27/8/2007 13:22:10
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
8
1 INTRODUO AS LINGUAGENS DE PROGRAMAO PARA INTERNET
Como j sabemos, a Internet uma rede que surgiu com o intuito principal
de compartilhar informaes entre os usurios interligados por meio dela. No incio,
as informaes que eram compartilhadas tinham um foco de estudo e pesquisa e os
usurios que tinham acesso a essa rede eram poucos. Com o avano das tecnologias
e a expanso da rede para outros usurios, o acesso s informaes e aos servios
disponveis pela Internet aumentou consideravelmente.
De acordo com as pesquisas realizadas em Junho/2007, pelo Internet World
Stats, estima-se que a Internet usada por 18% da populao mundial (em torno
de 1,1 bilho de pessoas). Este acesso vem aumentando gradativamente, em Mar-
o/2007 essa mesma pesquisa foi realizada e as estatsticas apontaram que 16,9%
da populao tinham acesso Internet. Isso signi!ca que apenas em um ms tivemos
um aumento de 1,1% de acessos, um aumento realmente considervel analisando as
devidas propores (bilhes de pessoas).
No so somente os acessos rede que vm aumentando, os tipos de servi-
os disponibilizados tambm esto em larga expanso. Os servios pioneiros como
WWW World Wide WEB que permitiam apenas a publicao de pginas institucio-
nais, com informaes estticas, esto sendo substitudas por pginas com contedo
cada vez mais dinmico, possibilitando aos prprios usurios da rede a interao e
publicao dos contedos dessas pginas.
Para permitir que os usurios da rede interajam dessa forma, necessrio que
as aplicaes disponveis na Internet sejam desenvolvidas com uma linguagem que
permita esses tipos de recursos. Nesse cenrio, surgiram as vrias linguagens de
programao para a Internet, que permitem aos desenvolvedores criar aplicaes e
servios com os mais variados recursos para disponibilizar na Internet.
As aplicaes desenvolvidas para a Internet, utilizam a arquitetura cliente-ser-
vidor. O que uma arquitetura cliente-servidor? A !gura 1 demonstra o funcionamento
da arquitetura cliente-servidor.
Programao de Pgina WEB.indd 8 27/8/2007 13:22:10
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
9

Figura 1 Representao simplicada da arquitetura cliente-servidor
Analisando a representao da gura 1, vemos um computador representando
a mquina cliente, que pode ser entendida como o computador dos usurios acessan-
do a Internet. A mquina cliente faz uma requisio de servio por meio do protocolo
http protocolo que nos permite visualizar os servios disponveis na Internet - para
um servidor. Devemos lembrar que a conexo entre a mquina cliente e o servidor
pode ser feita por meio da Internet (quando se trata de um servio disponvel na Inter-
net), ou ento por meio de uma rede interna (no caso das empresas que disponibili-
zam aplicaes cliente-servidor dentro da sua estrutura organizacional).
O servidor, por sua vez, ao receber a requisio, independente se um servio
interno ou externo, estar analisando a requisio feita e disponibilizando o servio.
Na gura 1, o servio requisitado foi desenvolvido utilizando a linguagem PHP, portan-
to, o servidor ir localizar a rotina PHP, interpretar o cdigo PHP da rotina utilizando o
interpretador do PHP instalado no servidor e retornar ao cliente o resultado da rotina
em formato de pgina HTML.
Veremos mais adiante, neste mesmo captulo, como deve ser o ambiente para
trabalharmos com PHP. Porm por meio da gura 1, j podemos vericar que ser
necessrio um interpretador da linguagem PHP para retornar ao usurio da aplicao
o resultado nal esperado.
O surgimento das linguagens de programao para Internet foi justamente
Programao de Pgina WEB.indd 9 27/8/2007 13:22:10
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
10
durante a fase de repercusso das redes de computadores e da arquitetura cliente-
servidor. As empresas fornecedoras de linguagens de programao e tambm os es-
pecialistas em servios para Internet identicaram a demanda e assim comearam a
nascer as linguagens voltadas para o desenvolvimento de aplicaes cada vez mais
dinmicas para a Internet.
1.1 O QUE PHP?
PHP pode ser traduzido para: PHP Hipertext Preprocessor e uma lingua-
gem de programao voltada para o desenvolvimento de aplicaes para a Internet.
Por ser uma linguagem interpretada, caracterstica comum entre as linguagens para a
Internet, necessria a instalao de um interpretador no servidor da aplicao que
ir interpretar as instrues da linguagem e retornar o resultado no formato de uma
pgina HTML para o navegador do usurio.
A linguagem PHP uma linguagem Open Source, ou seja, pode ser utilizada
por qualquer usurio sem a necessidade de compra de licena para a utilizao e
desenvolvimento de aplicaes. Tambm pode ser considerada como uma linguagem
multiplataforma, pois o interpretador da linguagem tem compatibilidade com mais de
um sistema operacional.
Essas caractersticas so as principais motivaes que fazem com que a lin-
guagem seja cada vez mais popular entre os desenvolvedores de aplicaes para a
Internet.
1.2 COMO SURGIU?
A linguagem PHP foi criada em 1994 por Ramus Lerdorf. Nessa poca, a idia
de Ramus era apenas facilitar a publicao de informaes no seu site pessoal.
Em 1995, o interpretador foi publicado e divulgado em uma comunidade Open
Source e comeou a ser utilizada por outros usurios.
Programao de Pgina WEB.indd 10 27/8/2007 13:22:10
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
11
Fique sabendo
Uma comunidade Open Source uma comunidade de desenvolvedores que
desenvolvem e disponibilizam aplicaes e outros recursos que auxiliam no pro-
cesso de desenvolvimento. Todos os recursos e aplicaes disponibilizados por
esse tipo de comunidade so livres de licena de uso.
Entre os anos de 1996 e 1997, a linguagem j estava bem popularizada entre
as diversas comunidades livres e seus usurios e, nessa poca, a origem do inter-
pretador e suas atualizaes !caram sob a responsabilidade da comunidade livre da
linguagem PHP, que at hoje responsvel pelas correes e atualizaes da lingua-
gem.
Hoje em dia, a linguagem reconhecida mundialmente e muitas aplicaes j
foram desenvolvidas com ela. a linguagem favorita dos acadmicos e desenvolve-
dores que utilizam a plataforma Linux.
A verso mais recente e estvel da linguagem a verso 5, porm espera-se
para o prximo ano, em 2008, o lanamento da verso 6, que j possui algumas dis-
tribuies na fase beta fase de testes.
1.3 VANTAGENS DA LINGUAGEM PHP
As principais vantagens da linguagem so:
livre de licena utilizao gratuita;
multiplataforma, podendo ser utilizada na maioria dos sistemas operacio-
nais sistemas operacionais mais populares;
A grande maioria dos provedores externos empresas que vendem espao
para armazenamento de sites e aplicaes na Internet possuem a instalao
do interpretador do PHP em seus servidores;
Possui muitos recursos distribudos em bibliotecas de fontes nas comunida-
des livres recursos que auxiliam no desenvolvimento das aplicaes;
A comunidade livre de PHP est sempre desenvolvendo e distribuindo novos
recursos nas bibliotecas de fontes para os desenvolvedores;
Programao de Pgina WEB.indd 11 27/8/2007 13:22:10
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
12
A linguagem tem suporte e integrao com os bancos de dados mais popula-
res como MySQL, SQL Server, Oracle, DB2, entre outros;
Permite o desenvolvimento de aplicaes dinmicas com recursos como: en-
vio de e-mails, autenticao de usurios, contedo dinmico entre outros.
Alm das vantagens citadas acima, a linguagem tambm tem um diferencial
importante em relao s demais: uma linguagem de fcil aprendizagem.
1.4 COMO TRABALHAR COM PHP
Os primeiros passos para iniciar o desenvolvimento de aplicaes com a lin-
guagem PHP a preparao do ambiente de desenvolvimento. Para isso, certi!que-
se de que voc tem os requisitos mnimos e o ambiente do PHP instalado em seu
computador.
O ambiente de desenvolvimento do PHP composto de um servidor WEB,
responsvel pelo armazenamento e publicao das pginas, e o interpretador da lin-
guagem PHP. O servidor WEB mais utilizado pelos desenvolvedores PHP o Apa-
che, que um servidor gratuito, mas o PHP tambm pode ser con!gurado em outros
servidores WEB como o famoso IIS da Microsoft. Alm disso, o ambiente de desen-
volvimento pode tambm ser composto de um gerenciador de banco de dados para
o armazenamento dos dados da aplicao dinmica. O banco de dados MySQL o
favorito para o desenvolvimento de aplicaes para Internet com PHP.
Para facilitar a con!gurao do ambiente de desenvolvimento, existe atual-
mente uma ferramenta chamada Vertrigo que permite a instalao e con!gurao de
todo o ambiente de desenvolvimento PHP. Essa ferramenta instala inclusive o banco
de dados MySQL e permite que aplicaes desenvolvidas com PHP sejam integradas
com o MySQL.
Para instalar o Vertrigo, voc pode fazer o download atravs do site http://ver-
trigo.sourceforge.net/?lang=br e seguir as instrues de instalao e con!gurao
disponveis no site. A instalao do Vertrigo bem simples, possui a caracterstica:
Next, Next, Finish ou, em portugus: Prximo Passo, Prximo Passo, Concluir.
Programao de Pgina WEB.indd 12 27/8/2007 13:22:10
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
13
As informaes do instalador tambm so bem simples e intuitivas, basta sele-
cionar o idioma Portugus para instalao e seguir as instrues seguintes.
Aps a instalao do Vertrigo voc j possuir o ambiente de desenvolvimento
congurado para desenvolver suas aplicaes PHP.
Para iniciarmos o desenvolvimento de aplicaes em PHP, inicialize o servidor
do Vertrigo por meio do menu Iniciar >> Programas >> VertrigoServ. Ser aberta a
janela do Vertrigo com as informaes das ferramentas que foram instaladas e con-
guradas em seu computador. Para inicializar o servidor, basta clicar no boto: Hide
this window and start server que signica: Esconda essa janela e inicie o servidor.
A gura 2 ilustra a janela do VertrigoServ.
Figura 2 Janela do VertrigoServ
Aps iniciar o VertrigoServ, ser mostrado um cone do servidor na barra de
status do Windows, ao lado do relgio. Esse cone estar sempre visvel enquanto o
servio do Vertrigo estiver ativo.
Finalmente, para validarmos que est tudo certo com o Apache servidor WEB
instalado para armazenar e publicar as pginas em PHP abra um navegador e digite
o seguinte comando na barra de endereos:
http://localhost
Aps digitar o comando, ser mostrada a tela do VertrigoServ. A gura 3 mos-
tra a tela do VertrigoServ.
Programao de Pgina WEB.indd 13 27/8/2007 13:22:11
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
14
Figura 3 Tela do VertrigoServ
Aps digitar o comando, ser mostrada a tela do VertrigoServ. A gura 3 mostra
a tela do VertrigoServ.
Para visualizar a verso do interpretador do PHP instalado por meio do Vertrigo,
clique no link: View phpinfo screen, disponvel no item: Tools and Links. Aps
clicar no link citado, ser mostrada uma tela com as informaes do interpretador do
PHP: verso e bibliotecas instaladas. A gura 4 ilustra a tela com as informaes do
PHP.
Figura 4 Tela com as Informaes do PHP
Programao de Pgina WEB.indd 14 27/8/2007 13:22:11
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
15
Aps validar a congurao e o funcionamento do ambiente de desenvolvimen-
to, precisamos escolher um editor de comandos para podermos dar incio ao conhe-
cimento e aprendizagem da linguagem PHP.
Atualmente, no mercado, h muitos editores que permitem aos desenvolvedo-
res de PHP uma boa produtividade, porm muitos desses editores no possuem uma
verso gratuita para uso. importante ressaltar aqui, que voc pode trabalhar com a
linguagem PHP utilizando at um bloco de notas, contudo, como j informamos ante-
riormente, um editor PHP ir agilizar e melhorar a produtividade durante o desenvolvi-
mento.
No decorrer do nosso curso, utilizaremos o editor: PHP Editor, desenvolvido em
portugus e uma ferramenta gratuita. Para obter a verso do PHP Editor, entre no
site: http://paginas.terra.com.br/informatica/php_editor/download.html e clique
no link: Mirror 2 para fazer o download do arquivo. Aps o download do arquivo,
clique duas vezes em cima do arquivo executvel para fazer a instalao que bem
simples, basta seguir as instrues da instalao. As guras 5 a 8 ilustram o processo
de instalao do PHP Editor.

Figura 5 Tela 1 da Instalao do PHP Editor
Aps clicar no arquivo de instalao do PHP Editor, ser exibida a primeira tela com
instrues para a instalao. Para prosseguir com a instalao, clique no boto avanar.
Programao de Pgina WEB.indd 15 27/8/2007 13:22:11
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
16
Em seguida, o instalador ir solicitar a conrmao do local para instalao do
PHP Editor, geralmente o diretrio: C:\Arquivos de Programas\PHP Editor. Sele-
cione o diretrio onde dever ser feita a instalao por meio do boto: Procurar, ou
deixe o caminho sugerido pelo instalador e clique no boto: Instalar para prosseguir
a instalao.
Figura 6 Tela 2 da Instalao do PHP Editor
Aguarde at o processo de instalao nalizar (gura 7). Quando o processo
de instalao nalizar, ser mostrada a tela com as informaes da instalao. Para
prosseguir, clique no boto: Terminar. Caso a opo: Executar o PHP Editor esteja
selecionada esta opo vem selecionada por padro - o PHP Editor ser aberto.
Programao de Pgina WEB.indd 16 27/8/2007 13:22:11
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
17
Figura 7 Tela 3 da Instalao do PHP Editor
Ao clicar no boto: Terminar, o PHP Editor ir questionar se voc deseja re-
lacionar todos os arquivos com extenso: .php com a ferramenta. Ao conrmar
esta opo, todos os arquivos criados com a extenso: .php sempre sero abertos
com o PHP Editor. Esse o ltimo passo para a instalao da ferramenta. Concludo
esse passo, j ser possvel trabalhar com a ferramenta. A gura 8 ilustra a ferramenta
PHP Editor que utilizaremos durante o curso.
Figura 8 Ferramenta PHP Editor
Programao de Pgina WEB.indd 17 27/8/2007 13:22:11
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
18
No prximo captulo, vamos conhecer a sintaxe da linguagem PHP.
Sntese
Nesta aula vimos:
Uma introduo s linguagens para desenvolvimento de aplicaes para In-
ternet;
A de!nio de PHP;
Como surgiu a linguagem PHP;
Quais as vantagens da linguagem PHP em relao s demais linguagens;
Quais so os pr-requisitos para trabalhar com PHP.
Exerccios propostos
1) Complete a frase abaixo com uma das alternativas, a ordem das palavras deve
corresponder lgica da frase.
A linguagem PHP possui um .... responsvel pela transformao das pginas ....
em pginas .... . Essas pginas .... so as pginas que o .... ir disponibilizar ao
....
a. Servidor Web, HTML, PHP, PHP, Usurio, Interpretador
b. Servidor Web, PHP, HTML, PHP, Interpretador, Usurio
c. Interpretador, PHP, HTML, HTML, Servidor WEB, Usurio
d. Interpretador, HTML, PHP, PHP, Servidor WEB, Usurio
2) Selecione a alternativa incorreta. O PHP pode ser denido como:
a. Uma linguagem de programao para Internet
b. Uma linguagem Open Source
c. Uma linguagem interpretada
Programao de Pgina WEB.indd 18 27/8/2007 13:22:12
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
19
d. Uma linguagem compilada
3) Selecione a alternativa correta. O PHP atualmente mantido:
a. Pelo criador da linguagem
b. Por uma comunidade de softwares que necessita licena
c. Por uma comunidade de softwares livres
d. Por uma empresa privada
4) Qual das alternativas abaixo no uma vantagem na utilizao do PHP?
a. O PHP multiplataforma
b. O PHP Open Source
c. O PHP possui integrao com diversos banco de dados
d. O PHP possibilita o desenvolvimento de aplicaes estticas
5) Para desenvolver aplicaes com PHP, necessrio ter um ambiente de de-
senvolvimento. Quais dos itens abaixo so obrigatrios nesse ambiente de de-
senvolvimento ( permitida mltipla escolha):
a. Servidor WEB
b. Banco de Dados
c. Interpretador PHP
d. Editor PHP
Programao de Pgina WEB.indd 19 27/8/2007 13:22:12
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
20
Aula 2
INTRODUO LINGUAGEM PHP
Caro aluno(a)!
Nesta segunda aula voc ir aprender a sintaxe bsica
da linguagem PHP e tambm vai desenvolver o pri-
meiro exemplo com a linguagem. Aps o desenvolvimento desse
exemplo, ser mostrado como testar o exemplo no ambiente de
desenvolvimento con!gurado.
Bom estudo!
Objetivos da Aula
Ao !nal desta aula, voc dever ser capaz de:
Escrever uma instruo bsica em PHP;
Testar o funcionamento de uma pgina PHP.
Contedos da Aula

Acompanhe os contedos desta aula. Se voc preferir, assi-
nale-os medida em que for estudando.
Conhecendo a sintaxe bsica da linguagem;
Desenvolvendo o primeiro exemplo com PHP;
Exerccios propostos
Programao de Pgina WEB.indd 20 27/8/2007 13:22:12
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
21
1 CONHECENDO A SINTAXE BSICA DA LINGUAGEM
Grande parte das aplicaes desenvolvidas em PHP possui a seguinte estrutu-
ra:
Interface com o usurio aparncia da aplicao representada pela parte
HTML com imagens e textos estticos e/ou dinmicos;
Scripts com instrues em PHP representando a lgica de negcio da apli-
cao;
Integrao com banco de dados representando os dados dinmicos que
sero disponibilizados na aplicao.
Essa estrutura tambm utilizada em aplicaes desenvolvidas com outras
linguagens, pois esse um padro seguido por grande parte de desenvolvedores de
aplicaes para a Internet.
Portanto, importante lembrar que, alm de utilizarmos a linguagem PHP para
desenvolvermos aplicaes dinmicas, tambm devemos conhecer os componentes
bsicos da linguagem HTML e os conceitos bsicos de banco de dados.
1.1 Delimitando o cdigo PHP
Para fazer a interpretao de um cdigo PHP e disponibilizar no formato HTML,
o interpretador procura um identi!cador que sinaliza o incio do cdigo PHP. Esse
identi!cador chamado de delimitador. Por meio do delimitador, o interpretador sa-
ber onde o incio e o !m do cdigo PHP.
O delimitador PHP representado pelos smbolos:
<?php ou somente <? = incio do bloco de comandos;
?> = !m do bloco de comandos.
O exemplo abaixo demonstra como utilizar o delimitador PHP:
<?php
//instrues PHP;
?>
Programao de Pgina WEB.indd 21 27/8/2007 13:22:12
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
22
ou
<?
//instrues PHP;
?>
Esse o primeiro conceito que devemos utilizar quando estamos desenvol-
vendo com PHP. Sempre que incluirmos alguma instruo PHP, necessrio incluir a
instruo dentro do bloco de delimitadores.
Como vimos, podemos utilizar arquivos / pginas em PHP para montar a in-
terface / leiaute da aplicao. Esse leiaute, muitas vezes, criado com o auxlio da
linguagem HTML que permite a insero de estilos de fontes diferentes, imagens e
outros componentes interativos.
Por esse motivo, comum, quando desenvolvemos utilizando PHP, a interao
entre instrues PHP e instrues HTML no mesmo arquivo. A funo da linguagem
HTML ser formatar o leaiute da aplicao dinmica, de acordo com a disposio das
instrues PHP e HTML.
Vamos analisar o cdigo da pgina PHP abaixo:
Nome da pgina: exemplo1.php
Contedo da pgina:
<html>
<body>
<b><? print Ol Seja Bem Vindo ao PHP ?> </b>
</body>
</html>
Analisando o contedo da pgina, as instrues que esto em negrito so es-
pec!cas da linguagem HTML e a instruo que no est em negrito uma instruo
PHP. O interpretador ir identi!car a existncia de uma instruo PHP por meio dos
delimitadores: <? ?> e interpretar a instruo que foi de!nida. As instrues HTML
foram includas na pgina apenas para facilitar a formatao do texto que ser mos-
trado, nesse caso, um texto em negrito, portanto, no ter nenhuma interferncia
Programao de Pgina WEB.indd 22 27/8/2007 13:22:12
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
23
1.2 Separador de instrues
Outro item importante que devemos utilizar no desenvolvimento com PHP o
separador das instrues. Cada instruo denida em uma pgina em PHP deve ser
nalizada com um ponto e vrgula ;.
O interpretador do PHP l as instrues de uma pgina linha a linha. Quando
ele identica o nal de uma instruo, interpreta a instruo e, caso tenha sucesso, ir
disponibilizando o resultado parcialmente. Isso signica que a pgina HTML, resultan-
te do processo de interpretao, ser montada aos poucos, conforme a nalizao da
interpretao das instrues. Esse processo, muitas vezes, transparente aos olhos
do usurio, sendo possvel sua identicao somente quando h lentido na monta-
gem da pgina HTML. A lentido pode ser causada por uma srie de fatores como:
problema na rede, problema no computador ou ainda problema na instruo PHP
denida.
1.3 Nomes de variveis
Diferente da maioria das linguagens de desenvolvimento, tanto para a Internet
quanto para aplicaes diversas, a linguagem PHP possui uma caracterstica espec-
ca para declarao de nomes de variveis. Ao declarar um nome para uma varivel,
necessrio incluir o smbolo: $ antes da varivel. Esse smbolo ir identicar que o
nome a seguir uma varivel. O interpretador PHP somente reconhecer uma vari-
vel se a mesma iniciar com o smbolo $.
Outra caracterstica importante a ser ressaltada que o PHP case-sensiti-
ve, ou seja, ele faz distino entre maisculas e minsculas. Veja no exemplo abaixo
a utilizao de variveis:
<?
$nome = Jos;
print Ol . $nome; // vai mostrar Jos
print <br>;
print Ol . $NOME; // no vai mostrar nada
?>
Programao de Pgina WEB.indd 23 27/8/2007 13:22:12
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
24
1.4 Comentrios
Como j sabemos, os comentrios so muito importantes durante o desenvol-
vimento das aplicaes, por meio deles teremos como compreender o que faz uma
determinada instruo ou bloco de instrues. Assim, quando for necessrio executar
alguma manuteno na instruo, ser possvel faz-la de forma mais rpida.
Em PHP h dois tipos de comentrios:
Comentrios de linha = //
Comentrios de bloco = /* o comentrio !ca aqui */
Os comentrios de linha so utilizados quando precisamos fazer um coment-
rio rpido, que ocupe apenas uma linha. J os comentrios de bloco so utilizados
quando o comentrio a ser feito possui mais de uma linha de texto. Veja o exemplo:
<?
//esse um comentrio de linha, ca apenas no cdigo
print Essa frase est abaixo do comentrio de linha;
//mais um comentrio de linha, a linha abaixo utilizada o
comando <BR> do //HTML, para pular duas linhas entre as
frases que sero mostradas na tela
print <br><br>;
/*
Esse um comentrio de bloco.
Pode ter mais de uma linha de comentrio, porm assim como
o comentrio de linha, tambm somente ca no cdigo e nun-
ca ser interpretado e mostrado na pgina nal em HTML
para o usurio.
*/
print Essa frase ser mostrada duas linhas abaixo da pri-
meira frase e abaixo do comentrio de bloco;
?>
Programao de Pgina WEB.indd 24 27/8/2007 13:22:12
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
25
1.5 Imprimindo cdigo na tela
Como j vimos nos exemplos anteriores, utilizamos o comando: print para im-
primir o resultado das instrues na tela do navegador. Em PHP existem dois coman-
dos que permitem imprimir textos e cdigos na tela:
print
echo

Ambos possuem a mesma funo: imprimir na tela, e no existe nenhum tipo
de distino entre eles, portanto, em seus cdigos, voc poder utilizar o comando
que lhe parece mais agradvel. No prximo tpico criaremos e testaremos o primeiro
exemplo e !car mais clara a funo do comando de impresso na tela.
2 DESENVOLVENDO O PRIMEIRO EXEMPLO COM PHP
Agora que j conhecemos a sintaxe bsica do PHP, vamos desenvolver nosso
primeiro exemplo utilizando o PHP Editor para criar uma pgina em PHP e o ambiente
de desenvolvimento do Vertrigo para testar o funcionamento da pgina criada.
Primeiro devemos iniciar o servidor do Vertrigo.
V at o menu Iniciar >> Programas >> VertrigoServ e selecione o item: Ver-
trigoServ. Ao clicar nesse item, ser mostrada a tela de inicializao do servio do
Vertrigo, veja a !gura 2 ilustrada no captulo 1 desta apostila. Clique no boto: Hide
this window and Start Server para iniciar o servio. Em seguida, abra o navegador
da Internet e informe o comando abaixo na barra de endereos:
http://localhost

Ser mostrada a pgina do VertrigoServ (!gura 3 do captulo 1 desta apostila).
Seguidos esses passos, j podemos iniciar o desenvolvimento do nosso exemplo.
Para conseguirmos testar os nossos exemplos, ser necessrio disponibilizar
os arquivos dentro do servidor WEB Apache, instalado pelo VertrigoServ. Dessa for-
ma, todos os arquivos de exemplo devero estar dentro de um diretrio chamado:
www que est dentro do diretrio de Instalao do VertrigoServ. Se voc optou pelo
Programao de Pgina WEB.indd 25 27/8/2007 13:22:12
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
26
caminho padro de instalao para VertrigoServ no momento da instalao, o diret-
rio www estar disponvel em C:\Arquivos de Programas\VertrigoServ\www. Se
voc optou por outro caminho de instalao, procure o caminho que voc informou no
momento da instalao e procure pelo diretrio: www.
Aps encontrar o diretrio: www, crie um novo diretrio dentro dele chamado:
apostila_php. Todos os arquivos desenvolvidos em PHP durante o curso devero ser
disponibilizados nesse diretrio para realizar os testes.
Com o diretrio criado, vamos agora abrir o PHP Editor para criar nosso primei-
ro exemplo. Os outros exemplos mostrados na apostila podero ser testados tambm
da mesma forma que faremos com este exemplo. Abra o PHP Editor e, na barra de
endereos mostrada, procure pelo diretrio: apostila_php criado dentro do diretrio:
www do VertrigoServ. A !gura 9 mostra onde deve ser selecionado o diretrio: apos-
tila_php.
Figura 9 Selecionando diretrio: apostila_php no PHP Editor
Com o diretrio: apostila_php selecionado, j possvel criar o arquivo PHP
que possuir a instruo do primeiro exemplo. Crie um novo arquivo clicando no co-
ne de criao de arquivo ou acessando o menu: Arquivo >> Novo. O PHP Editor ir
questionar qual o tipo de arquivo que voc deseja criar, selecione o tipo de arquivo:
Programao de Pgina WEB.indd 26 27/8/2007 13:22:13
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
27
/PHP e clique no boto: OK. A gura 10 ilustra a janela com as opes de arquivos
que podem ser criados.
Figura 10 Criando arquivos no PHP Editor
A seguir ser mostrada a estrutura de um arquivo em PHP. A gura 11 ilustra o
formato de um novo arquivo em PHP criado pelo PHP Editor.
Figura 11 Novo arquivo PHP
As instrues em PHP do exemplo devero car dentro dos delimitadores do
PHP: <? e ?>. Os demais comandos que aparecem no arquivo so comandos HTML
Programao de Pgina WEB.indd 27 27/8/2007 13:22:13
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
28
utilizados para a formatao da pgina HTML nal, criada pelo interpretador PHP, ao
nal da interpretao de todas as instrues PHP contidas no arquivo.
O comando: <TITLE></TITLE> do HTML o responsvel por alterar o ttulo
da pgina PHP que aparece na barra azul do navegador de Internet. Assim, vamos
alterar o texto: Documento PHP, que est dentro do comando HTML, para Primeiro
Exemplo em PHP. Isso far com que o texto informado seja mostrado como ttulo da
pgina no navegador.
Feita a alterao, vamos colocar as instrues PHP do exemplo dentro dos
delimitadores PHP. Digite a seguinte instruo:
<?
//Esse o primeiro exemplo em PHP que vamos testar
//Iremos imprimir o texto: O teste funcionou ok!
//Primeiro vamos criar uma varivel que vai receber o tex-
to:
$texto = O teste funcionou ok!;
//Agora vamos imprimir esse texto na tela utilizando o co-
mando print:
print $texto;
?>
Depois salve o arquivo clicando no cone do disquete ou selecionando o menu:
Arquivo >> Salvar. Salve o arquivo com o nome: exemplo4.php. A gura 12 ilustra
como car o cdigo arquivo exemplo4.php.
Programao de Pgina WEB.indd 28 27/8/2007 13:22:13
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
29
Figura 12 Arquivo exemplo4.php
Para testarmos a execuo do arquivo de exemplo criado, devemos acessar o
navegador de Internet e informar o seguinte comando na barra de endereos:
http://localhost/apostila_php/exemplo4.php
Ao executar esse comando no navegador, o arquivo: exemplo4.php ser in-
terpretado pelo interpretador PHP, em seguida, transformado em uma pgina HTML
e, ao !nal, o contedo da pgina HTML gerado disponibilizado pelo servidor WEB
Apache do ambiente VertrigoServ. A !gura 13 ilustra o resultado do teste.
Figura 13 Testando o exemplo4.php
Programao de Pgina WEB.indd 29 27/8/2007 13:22:13
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
30
Todos os arquivos desenvolvidos em PHP devero ser testados dessa forma.
Para os nossos exemplos, sempre criaremos os arquivos PHP dentro do diretrio:
apostila_php, porm para suas prximas aplicaes, crie um novo diretrio e dis-
ponibilize os arquivos dentro desse diretrio para testes. Para testar no navegador,
sempre coloque o nome do diretrio criado aps o comando: http://localhost/ e informe
o nome do arquivo que deseja testar. Seguem alguns exemplos de chamadas de ar-
quivos para testar no navegador.
1. Testar o arquivo: principal.php disponvel no diretrio: aplicacao1:
http://localhost/aplicacao1/principal.php
2. Testar o arquivo: teste.php disponvel no diretrio: aplicacao2:
http://localhost/aplicacao2/teste.php
3. Testar o arquivo: exemplo1.php disponvel no diretrio: apostila_php:
http://localhost/apostila_php/exemplo1.php
Sntese
Nesta aula vimos:
A sintaxe bsica da linguagem PHP;
Como desenvolver e testar um exemplo bsico em PHP.
Programao de Pgina WEB.indd 30 27/8/2007 13:22:13
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
31
Exerccios propostos
1) Qual das alternativas abaixo no faz parte da estrutura bsica de uma aplica-
o desenvolvida com PHP:
a. Interface com usurio
b. Pgina com instrues PHP
c. Interface com o banco de dados
d. Integrao com banco de dados
2) Para utilizar uma instruo PHP em uma pgina, necessrio (apenas uma
alternativa est correta):
a. Utilizar os delimitadores PHP representados pelos caracteres: <? E ?>
b. Declarar uma varivel
c. Utilizar comandos HTML
d. Montar a instruo PHP no corpo da pgina HTML
3) Todas as instrues PHP devem ser nalizadas com (apenas uma alternativa
est correta):
a. Ponto (.)
b. Ponto e vrgula (;)
c. Vrgula (,)
d. Todas as alternativas esto incorretas
4) Ao declarar uma varivel importante observar ( permitida mltipla esco-
lha):
a. Se o smbolo $ foi utilizado no incio do nome da varivel
b. Se foi declarado o tipo de dados da varivel
c. Se a varivel est com letras maisculas e minsculas por causa do case-sensiti-
ve
d. O tipo de valor que a varivel est recebendo
Programao de Pgina WEB.indd 31 27/8/2007 13:22:13
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
32
5) O comando PHP que imprime instrues na tela o ( permitida mltipla es-
colha):
a. printf
b. print
c. printout
d. echo
Programao de Pgina WEB.indd 32 27/8/2007 13:22:13
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
33
Aula 3
TIPOS DE DADOS SUPORTADOS
PELA LINGUAGEM PHP
Caro aluno(a)!
Nesta aula voc estudar sobre os tipos de dados su-
portados pela linguagem PHP. Mostraremos como uti-
lizar os tipos de dados, como transformar uma varivel que possui
um tipo de dado para outro tipo de dados e vamos tambm testar
alguns exemplos utilizando os tipos de dados vistos.
Boa aula!
Objetivos da Aula
Ao !nal desta aula, voc dever ser capaz de:
Identi!car quais so os tipos de dados utilizados pelo
PHP;
Utilizar corretamente os tipos de dados nas variveis;
Transformar um tipo de dado em outro tipo de dado;
Testar o funcionamento dos tipos de dados.
Contedos da Aula

Acompanhe os contedos desta aula. Se voc preferir, assi-
nale-os medida em que for estudando.
Introduo aos Tipos de Dados do PHP;
Transformando Tipos de Dados;
Exerccios propostos.
Programao de Pgina WEB.indd 33 27/8/2007 13:22:14
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
34
1 INTRODUO AOS TIPOS DE DADOS DO PHP
A linguagem PHP, assim como em outras linguagens para desenvolvimento
de aplicaes para Internet, no exige a declarao do tipo de dados no momento
da criao de uma varivel. Mas se no informamos qual o tipo de dado de uma
varivel, como o PHP consegue trabalhar com os tipos de dados e executar clculos
matemticos, por exemplo?
A linguagem PHP consegue fazer a distino entre os tipos de dados, por meio
do conceito: tipagem automtica, utilizada pelo interpretador PHP. Mas o que a tipa-
gem automtica?
A tipagem automtica o processo que o interpretador PHP utiliza para analisar
qual o valor que est sendo atribudo a uma varivel e setar o tipo de dados desta
varivel de acordo com o tipo de dados do valor atribudo varivel. Veja o exemplo
abaixo:
<?
//A varivel est recebendo um valor inteiro:
$numero1 = 10;
//A segunda varivel est recebendo um valor com casas de-
cimais:
$numero2 = 10.5;
//Vamos imprimir o valor das duas variveis e testar:
print $numero1;
print - ;
print $numero2;
?>
Programao de Pgina WEB.indd 34 27/8/2007 13:22:14
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
35
Se voc testar o exemplo acima, ir veri!car que os valores atribudos s duas
variveis foram impressos corretamente na tela. At aqui tudo certo, mas como pode-
mos validar que a varivel: $numero1 est atribuda com o tipo de dados: inteiro e a
varivel: $numero2 est atribuda com o tipo de dado: nmero com casas decimais?
Veremos nos prximos captulos da apostila que a linguagem PHP fornece uma srie
de funes que permitem veri!car e executar aes diversas. Nesse exemplo, portan-
to, para veri!carmos o tipo de dado de uma varivel, poderemos utilizar uma funo
que o PHP disponibiliza e que mostra qual o tipo de dado de uma varivel. A funo
que utilizaremos para isso a funo: gettype(nome_variavel). Essa funo ir
retornar o tipo de dado de uma varivel.
Vamos ento incluir as linhas abaixo no nosso exemplo:
<?
//vamos utilizar o comando <BR> do HTML para pular duas
linhas
print <BR><BR>;
//em seguida vamos imprimir o tipo de dado da varivel
$numero1
print Tipo de dado da varivel numero1 : .
gettype($numero1);
//vamos utilizar o comando <BR> do HTML para pular mais
duas linhas
print <BR><BR>;
//depois vamos imprimir o tipo de dado da varivel $nume-
ro2
print Tipo de dado da varivel numero2 : .
gettype($numero2);
?>
Programao de Pgina WEB.indd 35 27/8/2007 13:22:14
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
36
O resultado do teste mostrado na gura 14:
Figura 14 Testando o exemplo5.php
De acordo com o resultado, podemos vericar que a varivel $numero1 as-
sumiu o tipo de dado: integer que suporta nmeros inteiros e, a varivel $numero2
assumiu o tipo de dado: double que suporta nmeros com casas decimais.
Assim, mesmo no informando na instruo de declarao de uma varivel
qual o tipo de dado que ela dever assumir, o interpretador do PHP ir selecion-lo
automaticamente, de acordo com o tipo de dado do valor da varivel. Vamos vericar
agora quais so os tipos de dados que a linguagem PHP fornece para o desenvolvi-
mento de aplicaes.
A linguagem PHP tem suporte para os seguintes tipos de dados:
Nmeros inteiros
Nmeros com casas decimais
Textos
Booleanos
Array
Objeto
Vamos analisar, um a um, cada tipo de dado.
Programao de Pgina WEB.indd 36 27/8/2007 13:22:14
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
37
1.1 Nmeros Inteiros
considerado inteiro um nmero do conjunto de inteiros da matemtica: Z =
{..., -2, -1, 0, 1, 2, ...}. Os nmeros inteiros podem ser utilizados em decimal (base 10),
hexadecimal (base 16) ou octal (base 8), ou ainda como um nmero inteiro positivo ou
negativo. Veja no exemplo abaixo a forma de aplicao dos inteiros:
<?
$inteiro1 = 1234; // nmero decimal
$inteiro2 = -123; // um nmero negativo
$inteiro3 = 0123; // nmero octal (equivalente a 83 em de-
cimal)
$inteiro4 = 0x1A; // nmero hexadecimal (equivalente a 26
em decimal)
?>
Os nmeros inteiros hexadecimais devem sempre iniciar com o valor: 0x e os
nmeros inteiros octal devem sempre iniciar com o valor: 0. Esses valores, no incio,
so os responsveis pela interpretao correta do formato da varivel inteiro pelo in-
terpretador PHP.
O tipo de dados que suporta nmeros inteiros em PHP chamado de: inte-
ger.
1.2 Nmeros com casas decimais
O tipo de dado que suporta nmeros com casas decimais em PHP chamado
de: double. Esse tipo de dado permite uma preciso de at 14 decimais. Os nmeros
com casas decimais podem ser especi!cados da seguinte forma:
<?
$numero1 = 1.234;
$numero2 = 23e4; // representa o nmero 230.000
?>
Programao de Pgina WEB.indd 37 27/8/2007 13:22:14
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
38
1.3 Textos
O tipo de dado que suporta textos em PHP chamado de: string. Para atribuir
valores do tipo texto em uma varivel PHP pode-se utilizar tanto aspas duplas quanto
aspas simples. Existe, porm, uma diferena na interpretao dos valores das vari-
veis dependendo do tipo de aspas utilizado. As diferenas so:
Atribuindo valores s variveis do tipo: string com aspas simples:
O valor da varivel ser exatamente o texto que est entre as aspas
simples.
Atribuindo valores s variveis do tipo: string com aspas duplas:
O valor da varivel poder conter outra varivel entre as aspas duplas
ou ainda, caracteres de escape que permitem a formatao dos dados.
Para compreender melhor a diferena entre a atribuio de valores com aspas
simples e com aspas duplas, vamos veri!car o exemplo:
<?
/* atribuindo texto com aspas simples, vai ignorar o ca-
racter de escape \n e mostrar como parte do texto */
$texto1 = Esse o texto atribudo com aspas simples,
vai ignorar o \n informado ;
print $texto1;
//vamos utilizar o comando <br> do HTML para pular uma
linha
print <br>;
/* atribuindo texto com aspas duplas, vai interpretar o
caracter de escape \n */
$texto2 = Esse o texto atribudo com aspas simples,
vai interpretar o \n informado ;
print $texto2;
?>
Programao de Pgina WEB.indd 38 27/8/2007 13:22:14
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
39
Analisando o resultado do exemplo, vamos veri!car que a atribuio feita com
aspas simples mostra o texto como foi escrito. O caracter de escape: \n completa-
mente ignorado. J utilizando a atribuio com aspas duplas, o caracter de escape
interpretado, portanto, no mostrado como um texto na tela.
Os caracteres de escape mais utilizados em PHP so:
Sintaxe Signicado
\n Nova linha
\r Retorno de carro (semelhante a \n)
\t Tabulao horizontal
\\ A prpria barra ( \ )
\$ O smbolo $
\ Aspa simples
\ Aspa dupla
Veri!que que o caracter de escape: \n, utilizado no exemplo, executa a ao de
quebra de linha. Analisando novamente o resultado do nosso exemplo, executando o
exemplo por meio do navegador, vamos identi!car que a quebra de linha no foi feita.
Por que no foi feita a quebra de linha?
A resposta correta para essa questo : por causa do HTML. A linguagem HTML
sozinha no entende a ao dos caracteres de escape. necessrio um comando
HTML para formatar o texto de acordo com os caracteres de escape informados. O
comando em HTML que faz a formatao do texto com caracteres de escape o
<pre></pre>. Vamos ento melhorar o nosso exemplo incluindo uma nova impresso
da varivel utilizando o comando HTML que interpreta os caracteres de escape:
<?
//vericar texto2 com a formatao de quebra de linha do \n
print <pre>$texto2</pre>;
?>
Executando novamente o exemplo completo no navegador, podemos veri!-
car que a quebra de linha foi feita corretamente. Inclusive, se analisarmos a ltima
linha do exemplo, a varivel $texto2 foi includa dentro do comando <pre></pre>
Programao de Pgina WEB.indd 39 27/8/2007 13:22:14
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
40
e tambm dentro das aspas duplas. O texto que estava dentro da varivel $texto2
foi mostrado corretamente. Isso acontece porque o interpretador PHP consegue in-
terpretar uma varivel mesmo que esteja dentro de um texto com aspas duplas. J
com aspas simples isso no seria possvel. Vamos validar essa informao tentando
executar a ltima instruo de comando do nosso exemplo trocando as aspas duplas
por aspas simples:
<?
//vericar a impresso na tela com aspas simples
print <pre>$texto2</pre>;
?>
Executando o exemplo novamente, o resultado ser a ilustrao da !gura 15:
Figura 15 Testando o exemplo6.php
Na ltima linha impressa, o interpretador PHP no conseguiu interpretar a vari-
vel $texto2, pois a varivel foi colocada entre aspas simples.
1.4 Booleanos
O dado boolean o tipo mais simples que existe no PHP. um tipo de dado co-
mum na maioria das linguagens de programao, pois recebe somente dois valores:
Programao de Pgina WEB.indd 40 27/8/2007 13:22:15
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
41
1. Verdadeiro = True ou 1
2. Falso = False ou 0
Esse tipo de dado muito utilizado para validaes do resultado de outras ins-
trues. Utiliz-lo-emos bastante nos exemplos dos prximos captulos.
1.5 Array
O tipo de dado array utilizado como um vetor na linguagem PHP. Vetores so
mapeamentos de valores que !cam armazenados no disco HD do computador.
Podemos criar uma varivel do tipo array e utilizar as posies do mapeamento do
disco para armazenar mais de um valor. A quantidade das posies informada na
criao do array.
Existem duas maneiras de criar uma varivel do tipo array, veja o exemplo.
<?
//forma 1 - criando um array e setando o valor do array
$array1[1] = Posio 1 do array1;
$array1[2] = Posio 2 do array1;
$array1[3] = Posio 3 do array1;
//imprimindo os dados do array1
print $array1[1] - $array1[2] - $array1[3] <BR>;
//forma 2 - criando um array e setando o valor do array
$array2 = array(1=>Posio 1 do array2, 2=> Posio 2 do
array2, 3=>Posio 3 do array2);
//imprimindo os dados do array1
print $array2[1] - $array2[2] - $array2[3] <BR>;
?>
No exemplo, criamos dois arrays utilizando as duas formas possveis, mas
utilizamos como chave da posio nmeros inteiros. Em PHP podemos tambm
criar arrays utilizando textos como chave da posio do mapeamento dos dados.
Programao de Pgina WEB.indd 41 27/8/2007 13:22:15
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
42
Veja o exemplo.
<?
//criando array com chave de posio do tipo texto
$arrayTexto[Nome] = Jos Aparecido;
$arrayTexto[Idade] = 22;
//imprimindo os dados do arrayTexto
print $arrayTexto[Nome];
print <br>;
print $arrayTexto[Idade];
?>
Alm de podermos utilizar chave de posio do tipo texto, podemos tambm
atribuir qualquer tipo de dado suportado pelo PHP para a posio de uma varivel do
tipo: array. Trabalharemos mais com arrays nos prximos captulos do nosso livro-tex-
to.
1.6 Objeto
Desde a verso 4 a linguagem PHP tem suporte programao orientada a
Objetos. A partir dessa verso todos os conceitos utilizados pela Orientao a Objetos
podem ser utilizados em uma aplicao desenvolvida em PHP. Na verso 5 porm,
esses conceitos foram reforados e melhorados na linguagem e !cou mais fcil de-
senvolver aplicaes utilizando os paradigmas da Orientao a Objetos.
No captulo 7 da apostila analisaremos com mais detalhes a programao
orientada a objetos em PHP. O estudo de caso que desenvolveremos tambm utilizar
os conceitos da Orientao a Objetos.
2 TRANFORMANDO OS TIPOS DE DADOS
Como o interpretador PHP utiliza a tipagem automtica para indicar o tipo de
dado de uma varivel, pode acontecer que o tipo de dado indicado no seja o mais
Programao de Pgina WEB.indd 42 27/8/2007 13:22:15
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
43
adequado ou o esperado por algum procedimento da aplicao. Por esse motivo, h
possibilidade de alterarmos o tipo de dado de uma varivel, para que os procedimen-
tos possam ser executados corretamente.
A linguagem PHP disponibiliza trs formas para transformao dos tipos de
dados de uma varivel.
2.1 Coero
A Coero uma forma utilizada automaticamente pelo interpretador PHP. Um
exemplo de coero utilizado quando uma varivel recebe o resultado de uma ope-
rao matemtica entre dois nmeros, sendo um nmero inteiro e outro nmero com
casas decimais. A varivel que receber o valor ter seu tipo de dados alterado para
nmeros com casas decimais ou o tipo de dado: double. Veja o exemplo.
<?
// exemplo de coero
$inteiro = 1;
$real = 2.5;
print tipo de dados da varivel $inteiro = .
gettype($inteiro) . <br>;
print tipo de dados da varivel $real = . gettype($real)
. <br>;
$resultado = $inteiro;
print valor da varivel resultado = $resultado <br>;
print tipo de dados da varivel resultado = .
gettype($resultado) . <br>;
// gerando a coero do tipo de dado da varivel resultado
com a operao //matemtica de soma
$resultado = $inteiro+$real;
Programao de Pgina WEB.indd 43 27/8/2007 13:22:15
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
44
print valor da varivel resultado = $resultado <br>;
print tipo de dado da varivel resultado = .
gettype($resultado) . <br>;
?>
Ao analisarmos o resultado do exemplo, podemos vericar que o tipo de dado
da varivel $resultado indicado como: integer, quando a varivel $resultado
recebe a varivel $inteiro. A varivel resultado, porm, passou a assumir o tipo de
dados: double, quando foi atribudo o valor da operao matemtica entre a varivel
$inteiro e a varivel $real para a varivel $resultado. Isso ocorre porque a
operao matemtica de somar dois nmeros: um nmero inteiro e o outro nmero
real com casas decimais resulta opera em um nmero real.
Ento a operao utilizada automaticamente pelo interpretador PHP e no
temos como utilizar manualmente a operao de coero.
2.2 Transformao explcita de tipos de dados
A transformao explicta pode ser utilizada pelos desenvolvedores e consi-
derada a mais bsica de transformao de tipos de dado das variveis. Para utiliz-lo
precisamos dos cast, conversores de um tipo de dado para outro tipo de dado.
Os tipos de cast permitidos so:
(int), (integer) = altera o tipo de dado para integer;
(real), (double), (!oat) = altera o tipo de dado para !oat;
(string) = altera o tipo de dado para string;
(array) = altera o tipo de dado para array;
(object) = altera o tipo de dado para objeto.
Veja o exemplo.
<?
// exemplo utilizando cast
$numero = 1;
Programao de Pgina WEB.indd 44 27/8/2007 13:22:15
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
45
//imprimir o valor e o tipo de dado da varivel $numero
print valor da varivel = $numero <br>;
print tipo de dado da varivel = . gettype($numero) .
<br>;
// fazer a converso do tipo de dado da varivel $numero
utilizando cast
$numero = (double) 1;
print valor da varivel depois do cast = $numero <br>;
print tipo de dado da varivel depois do cast = .
gettype($numero) . <br>;
?>
Executando o exemplo acima, podemos vericar que a varivel $numero pas-
sou a assumir o tipo de dado: double.
2.3 Transformando tipos de dados com a funo settype
Essa forma tambm pode ser utilizada pelos desenvolvedores, basta que a
funo settype da linguagem PHP seja informada na instruo. O exemplo a seguir
ilustra a utilizao da funo settype(nome_variavel):
<?
// exemplo utilizando a funo settype
$texto = 10;
//imprimir o valor e o tipo de dado da varivel $texto
print valor da varivel = $texto <br>;
print tipo de dado da varivel = . gettype($texto) .
<br>;
Programao de Pgina WEB.indd 45 27/8/2007 13:22:15
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
46
// fazer a converso do tipo de dado da varivel $texto
utilizando settype
settype($texto,integer); // convertendo o tipo de dado para
integer
print valor da varivel depois da transformao = $texto
<br>;
print tipo de dado da varivel depois da transformao =
. gettype($texto) . <br>;
?>
No exemplo, foi feita a transformao de um tipo de dado texto string para
o tipo de dado inteiro integer utilizando a funo settype. H vrias funes dis-
ponveis na linguagem PHP e, durante o curso, utilizaremos vrias dessas funes.
Porm, para visualizar todas as funes disponveis na linguagem, voc deve consul-
tar o Manual PHP disponvel na instalao do PHP Editor. Para acessar o manual v
at o menu: Iniciar >> Programas >> PHP Editor e selecione o item Manual PHP.
Programao de Pgina WEB.indd 46 27/8/2007 13:22:15
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
47
Sntese
Nesta aula vimos:
Os tipos de dados suportados pela linguagem PHP;
Como podemos transformar o tipo de dado de uma varivel para outro tipo
de dado;
Testes com os tipos de dados da linguagem PHP.
Exerccios propostos
1) Selecione a alternativa incorreta. A linguagem PHP suporta os seguintes tipos
de dados:
a. Nmeros
b. Textos
c. Datas
d. Lista de Valores
2) O tipo de dado que permite duas formas de atribuio o (apenas uma alter-
nativa est correta):
a. Integer
b. Double
c. Boolean
d. String
3) O tipo de dado da varivel abaixo ser (apenas uma alternativa est correta):
$numero = 1;
a. Integer
b. Boolean
Programao de Pgina WEB.indd 47 27/8/2007 13:22:15
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
48
c. String
d. Double
4) Para utilizar caracteres de escape na impresso de instrues em PHP ne-
cessrio (apenas uma alternativa est correta):
a. Utilizar o comando HTML <br>
b. Utilizar o comando HTML <b></b>
c. Utilizar o comando HTML <pre></pre>
d. Todas as alternativas esto incorretas
5) A instruo abaixo ir (apenas uma alternativa correta):
$numero = (double) 1;
a. Transformar a varivel para String
b. Transformar a varivel para Double
c. Transformar a varivel para Integer
d. Transformar a varivel para Boolean
Programao de Pgina WEB.indd 48 27/8/2007 13:22:15
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
49
Aula 4
TRABALHANDO COM VARIVEIS E
CONSTANTES
Caro aluno(a)!
Nesta quarta aula vamos identi!car a diferena entre
variveis e constantes. Estudaremos como utiliz-las
nas aplicaes desenvolvidas em PHP. Alm disso, veri!caremos
quais so os tipos de variveis disponveis em PHP e como pode-
mos trabalhar com elas. Por !m, veremos mais algumas funes
disponveis em PHP que podem nos auxiliam nos procedimentos
com variveis.
Bom estudo!
Objetivos da Aula
Ao !nal desta aula, voc dever ser capaz de:
Identi!car os tipos de variveis existentes em PHP;
Utilizar variveis para criar rotinas em PHP;
Utilizar funes do PHP para trabalhar com as variveis;
Identi!car a diferena entre variveis e constantes;
Utilizar constantes para criar rotinas em PHP;
Testar o funcionamento das variveis e constantes.
Contedos da Aula

Acompanhe os contedos desta aula. Se voc preferir, assi-
nale-os medida em que for estudando.
Trabalhando com variveis;
Funes PHP para trabalhar com variveis;
Trabalhando com constantes;
Exerccios propostos.
Programao de Pgina WEB.indd 49 27/8/2007 13:22:16
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
50
1 TRABALHANDO COM VARIVEIS
No captulo anterior, vimos que na linguagem PHP, no h necessidade de
declarar as variveis com um tipo de dado especco, pois o interpretador PHP utiliza
a tipagem automtica para atribuir um tipo de dado a uma varivel. Dessa forma, po-
demos inicializar uma varivel somente quando realmente necessitamos dela em um
procedimento da aplicao que estamos desenvolvendo.
Relembrando o que foi mencionado no captulo 2 introduo a linguagem
PHP -, o nome da varivel dever sempre possuir o smbolo: $ no incio. justa-
mente esse smbolo que indica ao interpretador PHP que uma varivel est sendo
declarada do smbolo at o ponto e vrgula que ir encerrar a instruo de declarao
da varivel.
Tambm devemos relembrar que as variveis em PHP so case-sensitive, ou
seja, o nome da varivel tem distino entre letras maisculas e minsculas.
Agora, aps relembrarmos os conceitos bsicos a respeito das variveis, va-
mos veri!car quais so os tipos de variveis disponveis na linguagem PHP.
Alm das variveis bsicas do PHP criadas pelos desenvolvedores, h outros
tipos de variveis que podem ser utilizadas. Em geral, so criadas pelo servidor WEB
e o interpretador PHP para auxiliar nos procedimentos da aplicao. As variveis aqui
conceituadas como bsicas so todas aquelas utilizadas nos exemplos criados at
agora no curso. A partir de agora conheceremos outros tipos de variveis que pode-
remos utilizar em nossos exemplos e posteriores aplicaes.
1.1 Variveis enviadas pelo navegador
Quando utilizamos pginas PHP e HTML para fazer interao entre o usurio e
a aplicao, podemos utilizar as variveis enviadas pelo navegador. H dois tipos de
variveis enviadas pelo navegador:
1. POST = so as variveis enviadas pelos formulrios em HTML
2. GET = so as variveis enviadas ou por formulrios HTML ou pelo endereo
do navegador - URL no endereo do navegador.
Programao de Pgina WEB.indd 50 27/8/2007 13:22:16
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
51
Para veri!car a diferena entre as duas variveis, vamos analisar o exemplo
a seguir. Neste exemplo criaremos um formulrio HTML em uma pgina PHP para
passar um valor por meio de uma varivel e depois imprimir o valor da varivel na tela.
Utilizaremos o mesmo teste para variveis do tipo POST e GET. Vamos ao exemplo.
Pgina1: exemplo11_form.php
<HTML>
<HEAD>
<TITLE>Exemplo 11 - Form</TITLE>
</HEAD>
<BODY>
<form name=form1 action=exemplo11.php method=post>
Nome: <input type=text name=nome><br>
<input type=submit name=btnEnviar value=Enviar
valor>
</form>
</BODY>
</HTML>
Pgina 2: exemplo11.php
<HTML>
<HEAD>
<TITLE>Exemplo 11</TITLE>
</HEAD>
<BODY>
<?
$nome = $_POST[nome];
print O nome informado : $nome <br>;
?>
</BODY>
</HTML>
Programao de Pgina WEB.indd 51 27/8/2007 13:22:16
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
52
Vamos agora analisar o exemplo. A pgina exemplo11_form.php criada, possui
apenas um formulrio HTML com um nico campo texto chamado: nome. O valor in-
formado nesse campo texto ser enviado para a pgina: exemplo11.php, aps clicar
no boto: Enviar Valor. O comando que informa para onde ser enviado o valor, est
de!nido no comando: action=exemplo11.php do comando <form></form>
do formulrio HTML. O tipo de varivel a ser enviado para a pgina de!nido no co-
mando: method=post do comando <form></form> do formulrio HTML. Nesse
exemplo, ento, enviaremos o valor por meio de uma varivel do tipo POST. Porm,
se o desenvolvedor desejar enviar o valor por meio de uma varivel do tipo GET, utili-
zando esse mesmo formulrio, poder faz-lo trocando o texto post por get.
Analisando a pgina 2, exemplo11.php, identi!camos na primeira linha, aps o
delimitador PHP, a instruo: $nome = $_POST[nome]. Nesse comando estamos
pegando o valor da varivel POST, enviada pelo navegador, e atribuindo a varivel
$nome para depois imprimir na tela. Tambm possvel imprimir direto o contedo da
varivel enviada pelo navegador, para isso, basta alterar o comando para:
print $_POST[nome];
Ao executar o exemplo acima, veremos que, aps clicar no boto: Enviar valor,
o navegador ir para a pgina exemplo11.php e mostrar o valor informado no campo
de texto do formulrio da pgina exemplo11_form.php
Vamos agora utilizar o mesmo exemplo para testar as variveis do tipo: GET.
Para isso, altere o method=post do formulrio para method=get. Execute no-
vamente o teste. Qual foi o resultado?
Nesse caso, no foi mostrado o valor informado, certo? Isso mesmo, porque a
varivel agora est indo por meio do tipo: GET. Veri!que agora a barra de endereos
do navegador da internet, ele dever mostrar o seguinte comando:
http://localhost/apostila_php/exemplo11.php?nome=12&btnEnviar=Enviar+valor
Por que est mostrando os dados com o tipo: GET e com o tipo: POST?
Porque o tipo de varivel GET envia os valores por meio do endereo do nave-
gador.
E como fazemos para mostrar o valor enviado pelo navegador na pgina 2,
exemplo11.php?
Devemos alterar a instruo: $_POST[nome] para $_GET[nome], assim
Programao de Pgina WEB.indd 52 27/8/2007 13:22:16
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
53
o nome ser mostrado corretamente na pgina exemplo11.php. Faa o teste nova-
mente e valide essa informao.
Esses tipos de variveis sero amplamente utilizados para o desenvolvimento
de aplicaes que fazem interao com usurios, porm h duas diferenas muito im-
portantes entre os dois tipos de variveis e que devem ser levadas em considerao
na anlise de qual tipo de varivel utilizar:
1. Os tipos de varivel GET so enviados pelo endereo do navegador e por
isso todos os dados !cam expostos na barra de endereos. Assim evite utilizar
esse tipo de varivel quando houver dados sigilosos envolvidos.
2. A barra de endereo do navegador possui limitao de tamanho, mximo
255 caracteres, portanto, os valores dos tipos de varivel GET no podero
ultrapassar esse tamanho. Se ultrapassar, os dados no sero enviados por
completo, sero enviados somente os dados at o tamanho limite estabelecido
pelo navegador.
Analisando essas informaes, podemos de!nir que o tipo de varivel indicado
para formulrios em HTML o tipo: POST. O GET poder ser utilizado em outros pro-
cedimentos da aplicao. Veremos mais detalhes sobre esses dois tipos de variveis
no decorrer do curso.
1.2 Variveis de ambiente
A linguagem PHP possui vrias variveis de ambiente que podem auxi-
liar durante o desenvolvimento de uma aplicao. Para visualizar o contedo de
uma varivel de ambiente, basta utilizar a instruo: $_SERVER[nome_da_va-
riavel]. H, por exemplo, a varivel: $_SERVER[PHP_SELF] que possui o
nome e o caminho do prprio arquivo como valor. H tambm outras variveis que
possuem dados sobre o navegador do usurio, o servidor HTTP, e at a verso do
PHP instalada no servidor.
Para visualizar todas as variveis de ambiente disponveis, podemos utilizar a
funo phpinfo() ou a opo: View phpinfo() screen, disponvel na pgina principal
do VertrigoServ. As variveis de ambiente esto listadas abaixo do item: Apache En-
vironment.
Programao de Pgina WEB.indd 53 27/8/2007 13:22:16
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
54
1.3 Variveis de sesso
A linguagem PHP disponibiliza tambm variveis de sesso que permitem o
controle da sesso do usurio. Esse tipo de varivel comumente utilizado em aplica-
es que possuem autenticao de usurio.
Para visualizar o contedo de uma varivel de sesso, basta utilizarmos a ins-
truo: $_SESSION[nome_da_variavel].
Estudaremos com mais detalhes sobre as variveis de sesso no captulo 8
Controle de Sesso.
2 FUNES PHP PARA TRABALHAR COM VARIVEIS
A linguagem PHP disponibiliza vrias funes que auxiliam no desenvolvimen-
to de aplicaes. Nesse tpico, estudaremos as principais funes da linguagem que
permitem manipular as variveis criadas em PHP.
2.1 Funes que testam o tipo de dado de uma varivel
As funes que testam o tipo de dado de uma varivel so:
is_int = testa se o tipo de dado da varivel inteiro;
is_integer = testa se o tipo de dado da varivel inteiro;
is_real = testa se o tipo de dado da varivel real nmero com casas de-
cimais;
is_long = testa se o tipo de dado da varivel inteiro longo;
is_oat = testa se o tipo de dado da varivel !oat nmero com casas
decimais;
is_string = testa se o tipo de dado da varivel string;
is_array = testa se a varivel um array;
is_object = testa se a varivel um objeto.
Para utilizar essas funes, deveremos seguir o modelo abaixo:
nome_funcao(nome_variavel);
Programao de Pgina WEB.indd 54 27/8/2007 13:22:16
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
55
O valor de retorno de todas as funes booleano, ou seja, verdadeiro ou fal-
so true | false ou 1 | 0. O valor verdadeiro ser retornado quando o tipo de dado da
varivel est de acordo com a funo utilizada. Vamos executar o exemplo a seguir e
veri!car o funcionamento da funo is_string:
Pgina: exemplo12.php
<HTML>
<HEAD>
<TITLE>Exemplo 12</TITLE>
</HEAD>
<BODY>
<?
$variavelString = Texto da varivelString;
print is_string($variavelString);
?>
</BODY>
</HTML>
Ao executarmos o exemplo12.php, ser impresso na tela o valor 1. Esse valor
o retorno da funo is_string e signi!ca que a varivel: $variavelString possui
o tipo de dado: String.
2.2 Funo que destri uma varivel
Toda vez que criamos uma varivel, cria-se um espao em memria para ser
utilizado pela aplicao. Dessa forma, quando trabalhamos com vrias variveis em
uma aplicao, todas estaro consumindo espao em memria.
Portanto, muito importante ao trabalharmos com variveis, destrumos ou, na
linguagem do computador, desalocarmos a varivel da memria quando j no preci-
samos dela. A funo que permite desalocar uma varivel da memria : unset(nome_
variavel).
Aps utilizar a funo unset(), a varivel ser destruda, portanto, os valores da
Programao de Pgina WEB.indd 55 27/8/2007 13:22:16
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
56
varivel sero perdidos. Assim, somente utilize essa funo quando tiver certeza que
a varivel no ser mais utilizada por algum procedimento dentro da aplicao.
2.3 Funes que vericam se uma varivel possui valor
Existem duas funes que vericam se uma varivel possui valor:
isset(nome_da_variavel)
empty(nome_da_variavel)
Como na maioria das funes PHP, o retorno dessas duas funes tambm
booleano.
H, porm, uma diferena entre as duas variveis que precisamos analisar
antes de utiliz-las. Na primeira funo a funo isset vericado se a varivel j
foi criada na aplicao, ou seja, se j foi utilizada alguma vez pela aplicao. Caso a
varivel no tenha sido criada ainda, retornar o valor 0 ou false. Na segunda funo
a funo empty ser vericado se a varivel possui valor vazio ou nulo, porm a
varivel j deve estar criada na aplicao. Vamos executar o exemplo que segue para
compreender melhor essa diferena entre as duas funes:
Pgina: exemplo13.php
<HTML>
<HEAD>
<TITLE>Exemplo 13</TITLE>
</HEAD>
<BODY>
<?
$variavel1 = ;
// verica se a $variavel1 possui valor vazio ou nulo
print variavel1 = . empty($variavel1);
print <br>;
//destroi a $variavel1
unset($variavel1);
Programao de Pgina WEB.indd 56 27/8/2007 13:22:16
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
57
//verica se existe a $variavel1
print variavel1 = . isset($variavel1);
?>
</BODY>
</HTML>
3 TRABALHANDO COM CONSTANTES
Constantes podem ser denidas como uma varivel que possui um valor cons-
tante, ou seja, o valor ser denido uma nica vez e jamais ser alterado durante a
execuo da aplicao. Essa a principal diferena entre uma constante e uma vari-
vel. Como o prprio nome indica, as constantes possuem valores que jamais sero
alterados por algum procedimento dentro da aplicao. J as variveis podem ter o
seu valor alterado, dependendo do tipo de ao que for executado pela aplicao.
As constantes geralmente so utilizadas para receber valores de congura-
es / parmetros que sero utilizados pelo sistema. Um exemplo de constante pode
ser um login e senha para conexo da aplicao com o banco de dados. Esse dado
sempre ser o mesmo durante a execuo de toda a aplicao, portanto, poder estar
denido em uma constante.
Para denir uma constante na aplicao, utilizamos a funo: dene(nome_
da_constante,valor_da_constante).
A linguagem PHP possui algumas constantes pr-denidas que permitem veri-
car as conguraes do ambiente onde o interpretador PHP est instalado. Algumas
constantes disponveis possuem como valor: a verso do PHP, o Sistema Operacional
do servidor, o arquivo em execuo, entre outras informaes.
Para visualizar todas as constantes pr-denidas disponveis, podemos utilizar
a funo phpinfo() ou ento utilizar a opo: View phpinfo() screen, disponvel na
pgina principal do VertrigoServ.
Veja o exemplo que mostra como denir e utilizar uma constante dentro das
pginas PHP:
Pgina: exemplo14.php
Programao de Pgina WEB.indd 57 27/8/2007 13:22:16
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
58
<HTML>
<HEAD>
<TITLE>Exemplo 14</TITLE>
</HEAD>
<BODY>
<?
// denir a constante taxa de juros
dene(taxaJuros,0.5);
// imprime o valor da constante na tela
print taxa de Juros = . taxaJuros;
print <br>;
// utiliza a constante para um clculo
$valor = 100.00*taxaJuros;
// imprime o resultado do clculo com a constante
print valor = . $valor;
?>
</BODY>
</HTML>
Programao de Pgina WEB.indd 58 27/8/2007 13:22:16
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
59
Sntese
Nesta aula vimos:
Os tipos de variveis disponveis na linguagem PHP;
Como trabalhar com as variveis;
Funes PHP que auxiliam nos procedimentos com variveis;
A diferena entre variveis e constantes;
Como trabalhar com as constantes;
Testes com variveis e constantes.
Exerccios propostos
1) Os tipos de variveis mais utilizados no desenvolvimento de aplicaes com
PHP so ( permitida mltipla escolha):
a. Sesso
b. Enviadas pelo Navegador
c. Ambiente
d. Memria
2) Complete a frase abaixo com uma das alternativas:
As variveis que utilizam a barra de endereos do navegador a ....
a. Sesso
b. Post
c. Get
d. Servidor
3) O tipo de varivel que possui os dados da congurao do PHP (apenas
uma alternativa correta):
a. Ambiente
Programao de Pgina WEB.indd 59 27/8/2007 13:22:17
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
60
b. Post
c. Sesso
d. Servidor
4) A funo que verica se a varivel est setada e com o valor vazio a (apenas
uma alternativa correta):
a. is_string
b. unset
c. empty
d. isset
5) A principal diferena entre uma varivel e uma constante (apenas uma alter-
nativa correta):
a. A constante somente aceita um tipo de dado
b. A constante tem limitao de valor
c. O valor da constante no muda nunca na aplicao
d. A constante no pode ser utilizada em algumas instrues
Programao de Pgina WEB.indd 60 27/8/2007 13:22:17
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
61
Aula 5
OPERADORES DA LINGUAGEM PHP
Caro aluno(a)!
Nesta quinta aula voc conhecer os tipos de operado-
res disponveis na linguagem PHP e a diferena entre
eles. Alm disso, analisaremos o que uma expresso condicional
e quando podemos utiliz-las dentro de nossas aplicaes. Por m,
realizaremos alguns testes para identicar melhor a funcionalidade
dos operadores e tambm da expresso condicional.
Bons Estudos!
Objetivos da Aula
Ao nal desta aula, voc dever ser capaz de:
Identicar os tipos de operadores da linguagem PHP;
Utilizar os tipos de operadores;
Identicar o que uma expresso condicional;
Utilizar a expresso condicional.
Contedos da Aula

Acompanhe os contedos desta aula. Se voc preferir, assi-
nale-os medida em que for estudando.
Conhecendo os Tipos de Operadores;
Conhecendo a Expresso Condicional;
Exerccios Propostos.
Programao de Pgina WEB.indd 61 27/8/2007 13:22:17
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
62
1 CONHECENDO OS TIPOS DE OPERADORES
A linguagem PHP, assim como outras linguagens de programao, disponibili-
za vrios tipos de operadores para auxiliar na execuo de procedimentos dentro das
aplicaes.
Nesse captulo, veri!cremos quais so os tipos de operadores e como pode-
mos utiliz-los em nossas pginas PHP.
1.1 Operadores Aritmticos
Os operadores aritmticos so aqueles que auxiliam em clculos e expresses
matemticas. Esses operadores somente podero ser utilizados entre variveis com
os tipos de dados nmeros inteiros e/ou nmeros com casas decimais nmeros re-
ais.
Observe quais so os operadores aritmticos disponveis em PHP.

+ adio
- subtrao
* multiplicao
/ diviso
% mdulo
O exemplo demonstra a utilizao dos operadores aritmticos nas pginas em
PHP:
Pgina: exemplo15.php
<HTML>
<HEAD>
<TITLE>Exemplo 15</TITLE>
</HEAD>
<BODY>
<?
Programao de Pgina WEB.indd 62 27/8/2007 13:22:17
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
63
// utilizando operaes matemticas
$numero1 = 10;
$numero2 = 3;
// imprime o valor das variveis
print valor da varivel numero1 = . $numero1;
print <br>;
print valor da varivel numero2 = . $numero2;
print <br><br>;
// faz a soma entre as variveis e mostra o resultado
print Soma = . ($numero1+$numero2);
print <br>;
// faz a diferena entre as variveis e mostra o resultado
print Subtrao = . ($numero1-$numero2);
print <br>;
// faz a multiplicao entre as variveis e mostra o resultado
print Multiplicao = . ($numero1*$numero2);
print <br>;
// faz a diviso entre as variveis e mostra o resultado
print Diviso = . ($numero1/$numero2);
print <br>;
// faz a diviso entre as variveis e mostra o resto da diviso
print Mdulo - Resto da Diviso = . ($numero1%$numero2);
print <br>;
?>
</BODY>
</HTML>
Programao de Pgina WEB.indd 63 27/8/2007 13:22:17
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
64
1.2 Operador String
Para os tipos de dados string, h apenas um operador disponvel, o que per-
mite a concatenao entre variveis do tipo string. Concatenar duas variveis do tipo
string signi!ca juntar o valor das duas variveis.
O quadro a seguir mostra o smbolo que representa o operador de concatena-
o em PHP.
. concatenao
Se voc observar novamente os ltimos exemplos desenvolvidos, utilizamos o
operador de concatenao para unir textos com variveis. O exemplo abaixo mostra
a concatenao entre duas variveis do tipo texto:
Pgina: exemplo16.php
<HTML>
<HEAD>
<TITLE>Exemplo 16</TITLE>
</HEAD>
<BODY>
<?
// utilizando operador String
$texto1 = Vamos testar ;
$texto2 = o operador de concatenao;
// imprime o valor das variveis concatenadas
print $texto1 . $texto2;
?>
</BODY>
</HTML>
Programao de Pgina WEB.indd 64 27/8/2007 13:22:17
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
65
1.3 Operadores de Atribuio
Os operadores de atribuio tm como funo retornar um valor atribudo de
acordo com a operao indicada. As operaes podem utilizar operadores aritmticos
ou ainda o operador: string.
A atribuio feita sempre por valor, e no por referncia. Isso signica que a
atribuio ir alterar denitivamente o valor da varivel armazenada em memria.
Observe no quadro a seguir os operadores de atribuio disponveis em PHP.
= atribuio simples
+= atribuio com adio
-= atribuio com subtrao
*= atribuio com multiplicao
/= atribuio com diviso
%= atribuio com mdulo
.= atribuio com concatenao
Na maioria dos exemplos que desenvolvemos at agora, utilizamos o operador
bsico de atribuio para atribuir um valor as variveis. No exemplo abaixo, vamos
utilizar outros dois operadores de atribuio para vericarmos o seu funcionamento:
Pgina: exemplo17.php
<HTML>
<HEAD>
<TITLE>Exemplo 17</TITLE>
</HEAD>
<BODY>
<?
// utilizando operadores de atribuio
$texto = O valor da varivel numero = ;
$numero = 5;
// utilizando o operador de atribuio concatenao
Programao de Pgina WEB.indd 65 27/8/2007 13:22:17
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
66
$texto .= $numero;
// imprime o valor da varivel $texto
print $texto;
print <BR>;
// utiliza o operador de atribuio adio
$numero += 2;
// imprime o valor da varivel $numero
print $numero;
?>
</BODY>
</HTML>
1.4 Operadores Lgicos
Os operadores lgicos so geralmente utilizados em expresses e compara-
es entre condies ou variveis que retornam valores booleanos.
Os operadores lgicos disponveis em PHP so os que mostramos no quadro
a seguir.

! no (inverso)
&& e lgico
|| ou lgico
Nos exemplos dos prximos captulos e tambm no desenvolvimento de nosso
estudo de caso, muitas vezes utilizanremos os operadores lgicos para validar valo-
res de variveis e condies.
1.5 Operadores de Comparao
Os operadores de comparao so utilizados para comparar valores entre
Programao de Pgina WEB.indd 66 27/8/2007 13:22:17
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
67
variveis e expresses. O retorno de uma comparao ser sempre um valor do tipo:
booleano.
Veja quais so os operadores de comparao disponveis em PHP.
== igual a
!= diferente de
< menor que
> maior que
<= menor ou igual a
>= maior ou igual a
Nos exemplos dos prximos captulos e tambm no desenvolvimento de nosso
estudo de caso, muitas vezes utilizando os operadores de comparao para comparar
os valores de variveis e tambm expresses.
1.6 Operadores de Incremento e Decremento
Os operadores de atribuio tm como funo aumentar (incremento) ou dimi-
nuir (decremento) o valor de uma varivel. So operadores sempre utilizados em tipos
de dados numricos e o valor da varivel ter sempre o incremento/decremento de 1.
Por exemplo: se uma varivel possui o valor 10 e utilizamos o operador de incremento
aps a utilizao do operador, a varivel ter o valor 11. Se utilizssemos o decre-
mento nessa mesma varivel, o valor seria diminudo para 9.
O incremento/decremento ser feito de acordo com a ordem que disponibiliza-
mos o operador e a varivel. Se colocarmos o operador de incremento/decremento
antes da varivel, a ao do operador ser feita antes de mostrar a varivel, caso
contrrio, se o operador for colocado depois da varivel, a ao do operador ser feita
depois de mostrar a varivel.
Observe os operadores de incremento e decremento disponveis em PHP.
++ Incremento
-- Decremento
Assim como os operadores lgicos e de atribuio, utilizaremos bastante os
Programao de Pgina WEB.indd 67 27/8/2007 13:22:17
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
68
operadores de incremento e decremento nos exemplos dos prximos captulos. No ex-
emplo que segue j podemos ter uma noo de como funcionam estes operadores:
Pgina: exemplo18.php
<HTML>
<HEAD>
<TITLE>Exemplo 18</TITLE>
</HEAD>
<BODY>
<?
// utilizando operadores de incremento e decremento
$numero = 5;
// imprime o valor da varivel $numero utilizando o opera-
dor de incremento
print $numero++;
print <BR>;
// imprime o valor da varivel $numero utilizando o opera-
dor de decremento
print $numero--;
print <BR>;
?>
</BODY>
</HTML>
2 CONHECENDO A EXPRESSO CONDICIONAL
A expresso condicional considerada um tipo de operador. Tambm conhe-
cida como um operador de seleo ternrio.
A funo da expresso condicional veri!car uma dada condio e, dependendo do
valor da condio retornado valor booleano: true ou false a expresso executar
Programao de Pgina WEB.indd 68 27/8/2007 13:22:18
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
69
uma instruo.
A sintaxe da expresso condicional :
(condio)?(instruo1):(instruo2)

O interpretador PHP interpreta a expresso condicional da seguinte maneira:
1. Avalia a condio feita;
2. Se o resultado da condio for verdadeiro true ou 1 - a expresso condicio-
nal ir mostrar o valor da instruo1;
3. Se o resultado da condio for falso false ou 0 a expresso condicional
ir mostrar o valor da instruo2.
A expresso condicional tambm conhecida pelos desenvolvedores por if
rpido. O if uma estrutura de controle que tambm valida condies. Estudaremos
mais sobre o if no prximo captulo.
No exemplo a seguir podemos veri!car o funcionamento da expresso condi-
cional. Tambm utilizaremos um operador de comparao, o operador de igualdade:
Pgina: exemplo19.php
<HTML>
<HEAD>
<TITLE>Exemplo 19</TITLE>
</HEAD>
<BODY>
<?
// testando a expresso condicional
$numero1 = 5;
$numero2 = 4;
/* utiliza a expresso condicional para vericar se os va-
lores das variveis: $numero1 e $numero2 so iguais e de-
pois imprime um texto de acordo com o retorno da condio
/ comparao feita */
Programao de Pgina WEB.indd 69 27/8/2007 13:22:18
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
70
print ($numero1==$numero2)?Valores iguais:Valores dife-
rentes;
print <BR>;
?>
</BODY>
</HTML>
Sntese
Nesta aula estudamos:
Os tipos de operadores disponveis na linguagem PHP;
Como e quando utilizamos os tipos de operadores;
O que uma expresso condicional;
Como e quando podemos utilizar uma expresso condicional;
Realizamos testes para validar a funcionalidade dos tipos de operadores e
tambm da expresso condicional.
Programao de Pgina WEB.indd 70 27/8/2007 13:22:18
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
71
Exerccios propostos
1) Os operadores que permitem a realizao de clculos matemticos so (ml-
tipla escolha):
a. Aritmticos
b. String
c. Atribuio
d. Incremento
2) Complete a frase com uma das alternativas abaixo:
A concatenao uma operao permitida pelo operador ... e tem como funo
....
a. Aritmtico, adicionar variveis
b. Atribuio, atribuir valor s variveis
c. String, unir valores das variveis
d. Decremento, separar o valor da varivel em dois
3) O operador que retorna o resto de uma diviso (apenas uma alternativa
correta):
a. Aritmtico Diviso
b. Aritmtico Mdulo
c. Aritmtico - Incremento
d. Aritmtico - Atribuio
4) Os operadores de atribuio so utilizados para (mltipla escolha):
a. Atribuir valores as variveis
b. Atribuir tipo de dados em variveis
c. Executar uma operao matemtica em uma varivel
d. Executar uma operao matemtica somente aps a atribuio de um valor
Programao de Pgina WEB.indd 71 27/8/2007 13:22:18
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
72
5) A expresso condicional pode ser denida como ( permitida mltipla esco-
lha):
a. Um operador aritmtico
b. Um operador de atribuio
c. Um comando de seleo
d. Um operador de seleo ternrio
Programao de Pgina WEB.indd 72 27/8/2007 13:22:18
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
73
Aula 6
ESTRUTURAS DE CONTROLE
Caro aluno(a)!
Nesta sexta aula voc estudar sobre as estruturas
de controle disponveis na linguagem PHP. Vamos
aprender quais so essas estruturas e quando podemos utiliz-las
dentro das nossas aplicaes. Tambm desenvolveremos vrios
exemplos com as estruturas de controle para testar e compreender
melhor a funo de cada uma.
Bons Estudos!
Objetivos da Aula
Ao !nal desta aula, voc dever ser capaz de:
Identi!car quais so as estruturas de controle do PHP;
Identi!car como e quando utilizar as estruturas de contro-
le;
Testar o funcionamento das estruturas de controle.
Contedos da Aula

Acompanhe os contedos desta aula. Se voc preferir, assi-
nale-os medida em que for estudando.
Introduo s Estruturas de Controle;
Estruturas de Seleo;
Estruturas de Repetio;
Estruturas de Quebra de Fluxo;
Exerccios Propostos.
Programao de Pgina WEB.indd 73 27/8/2007 13:22:18
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
74
1 INTRODUO S ESTRUTURAS DE CONTROLE
As estruturas de controle disponveis na linguagem PHP so comuns na maio-
ria das linguagens de programao. Se voc j possui o conhecimento de alguma
linguagem de programao, identi!car vrias caractersticas semelhantes nas estru-
turas de controle do PHP.
A sintaxe das estruturas de controle do PHP tambm bem similar sintaxe de
outras linguagens. Se voc j trabalhou com a linguagem de programao C ou Java,
vai veri!car que a sintaxe das estruturas de controle bem semelhante.
Nos prximos tpicos desse captulo, estudaremos os trs tipos de estrutu-
ras de controle disponveis na linguagem PHP: Estruturas de Seleo, Estruturas de
Repetio e Estruturas de Quebra de Fluxo. Na sintaxe e tambm nos exemplos,
veremos que, para os dois primeiros tipos de estruturas, existe uma caracterstica em
comum, os blocos de comando.
Um bloco de comando consiste em um agrupamento de instrues PHP den-
tro de uma estrutura de controle. Esses blocos so delimitados pelos caracteres: {
que representa o incio do bloco e } que representa o !m do bloco de comando.
Dependendo da estrutura de controle utilizada e tambm do procedimento que ser
executado dentro da estrutura de controle, poderemos ter: nenhum, um ou mais blo-
cos de comando. A existncia de um bloco de comando ser dispensada quando o
procedimento tiver apenas uma instruo de comando.
A seguir, veri!caremos detalhadamente quais so as estruturas de controle e
qual a aplicao de cada uma delas.
2 ESTRUTURAS DE SELEO
As estruturas de seleo, tambm conhecidas por estruturas condicionais, tm
como funo validar condies e comparar o resultado das condies. Aps executar
as funes de validao e comparao, as estruturas de seleo iro executar os blo-
cos de comando, de!nidos de acordo com o resultado da comparao.
Programao de Pgina WEB.indd 74 27/8/2007 13:22:18
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
75
A expresso condicional, que vericamos no captulo anterior, pode tambm
ser considerada como uma estrutura de controle de seleo.
Existem dois tipos de estruturas de seleo: If e Switch. A seguir vamos veri-
car quais as diferenas e sintaxe de cada uma delas.
2.1 If
O If considerado a estrutura de controle mais comum das linguagens de pro-
gramao e muito utilizado no desenvolvimento das aplicaes.
Possui um sintaxe bem simples:
IF(condio)
Instruo;
Ou
IF(condio){
Instruo1;
Instruo2;
Etc;
}
A primeira sintaxe utilizada quando temos apenas uma instruo PHP a ser
executada aps a validao da condio. No necessrio, portanto, criar um bloco
de comando para agrupar e executar as instrues. Na segunda sintaxe, temos mais
de uma instruo PHP a ser executada, portanto, necessria a criao de um bloco
de comando para agrupar as instrues e execut-las conforme a seqncia deni-
da.
O If sempre executar o bloco de comando ou a instruo nica se a condio
entre parnteses retornar um resultado booleando verdadeiro. Caso contrrio, o bloco
de comando ou a instruo nica no sero executadas.
Veja o exemplo.
Programao de Pgina WEB.indd 75 27/8/2007 13:22:18
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
76
Pgina: exemplo20.php
<HTML>
<HEAD>
<TITLE>Exemplo 20</TITLE>
</HEAD>
<BODY>
<?
// testando o if
$numero1 = 5;
$numero2 = 4;
/* utiliza o if para vericar se os valores das variveis:
$numero1 e $numero2 so diferentes e depois imprime um
texto caso o retorno da condio seja verdadeiro neste
exemplo estamos tambm utilizando o operador de comparao
- desigualdade */
if ($numero1!=$numero2){
print As variveis possuem valores dife-
rentes;
print <BR>;
}
?>
</BODY>
</HTML>
Analisando o resultado do teste, vericaremos que a mensagem: As variveis
possuem valores diferentes foi impressa na tela, pois realmente elas possuem va-
lores diferentes. Utilizando o operador de comparao de desigualdade, a condio
retornou um valor booleano verdadeiro, pois as variveis possuem valores diferentes.
Vamos agora utilizar o mesmo exemplo, porm alterando a condio para veri-
car se os valores das variveis so iguais. Para isso, vamos utilizar o operador de
comparao de igualdade:
Programao de Pgina WEB.indd 76 27/8/2007 13:22:18
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
77
Pgina: exemplo21.php
<HTML>
<HEAD>
<TITLE>Exemplo 21</TITLE>
</HEAD>
<BODY>
<?
// testando o if
$numero1 = 5;
$numero2 = 4;
/* utiliza o if para vericar se os valores das variveis:
$numero1 e $numero2 so iguais e depois imprime um texto
caso o retorno da condio seja verdadeiro neste exemplo
estamos tambm utilizando o operador de comparao - igual-
dade */
if ($numero1==$numero2){
print As variveis possuem valores
iguais;
print <BR>;
}
?>
</BODY>
</HTML>
Quando executamos o exemplo, agora, no foi mostrada nenhuma mensagem
na tela, por qu? Porque a condio retornou um valor falso, ou seja, o valor das duas
variveis no verdadeiro.
Certo, mas neste caso ento, como fazemos para mostrar alguma mensagem
quando o valor da condio falso? Podemos utilizar a instruo: else. A sintaxe do
IF utilizando a instruo else :
Programao de Pgina WEB.indd 77 27/8/2007 13:22:19
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
78
IF(condio)
Instruo;
Else
Instruo;
Ou para utilizar com bloco de comando:
IF(condio){
Instruo1;
Instruo2;
Etc;
} Else {
Instruo1;
Instruo2;
Etc;
}
As instrues do Else sero executadas somente quando o valor da condio
do If for falso. Podemos ainda utilizar um encadeamento de condies quando preci-
samos analisar uma srie de condies no mesmo procedimento. Esse encadeamen-
to uma mistura entre IFs e Elses dentro do cdigo. Veja como !ca a sintaxe:
IF(condio1){
Instruo1;
Instruo2;
Etc;
} Else IF(condio2) {
Instruo1;
Instruo2;
Etc;
Programao de Pgina WEB.indd 78 27/8/2007 13:22:19
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
79
} Else IF(condio3) {
Instruo1;
Instruo2;
Etc;
} Else IF(condioN) {
Instruo1;
Instruo2;
Etc;
} Else {
Instruo1;
Instruo2;
Etc;
}
Mostramos na sintaxe acima, que no existe um limite para o encadeamento
de ifs. Esse tipo de procedimento pode ser utilizado de acordo com a quantidade de
condies e comparaes que devem ser executadas pela aplicao. importante
lembrar que as instrues do Else If sero executadas somente se a condio do IF
tiver valor verdadeiro, caso contrrio, as instrues executadas sero as do Else !nal,
que no possui um IF com uma condio para comparar, por isso executado quando
o valor da condio de todos os Ifs for falso.
Vamos testar o exemplo abaixo para compreender melhor o funcionamento do
IF encadeado:
Pgina: exemplo22.php
<HTML>
<HEAD>
<TITLE>Exemplo 22</TITLE>
</HEAD>
<BODY>
<?
Programao de Pgina WEB.indd 79 27/8/2007 13:22:19
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
80
// testando o IF encadeado
$numero1 = 5;
$numero2 = 4;
$numero3 = 5;
// utilizando o If encadeado
if ($numero1==$numero2){
print As variveis: numero1 e numero2 possuem
valores iguais;
print <BR>;
} else if ($numero1==$numero3){
print As variveis: numero1 e numero3 possuem
valores iguais;
print <BR>;
} else if ($numero2==$numero3){
print As variveis: numero2 e numero3 possuem
valores iguais;
print <BR>;
} else {
print As trs variveis possuem valores diferen-
tes;
print <BR>;
}
?>
</BODY>
</HTML>
2.2 Switch
A estrutura de seleo Switch funciona de maneira semelhante aos Ifs enca-
deados. Essa estrutura muito utilizada quando necessrio comparar o valor de
uma varivel ou ento de uma mesma condio com diversos valores.
Programao de Pgina WEB.indd 80 27/8/2007 13:22:19
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
81
Se utilizarmos o IF encadeado para testar uma varivel com diversos valores,
teremos sempre que montar um IF com vrios Else If at completar todos os valores
que desejamos testar. Utilizando o Switch para esse mesmo procedimento, o cdigo
car mais enxuto e ter o mesmo efeito. Vamos analisar a sintaxe do switch:
Switch(valor_a_ser_comparado){
Case valor1:
Instruo;
Break;
Case valor2:
Instruo;
Break;
Default:
Instruo;
Break;
}
Na sintaxe acima, os itens em negrito so os que deveremos alterar de acordo
com o procedimento que ser executado. Onde est o valor_a_ser_comparado ser
indicada a varivel que deseja comparar o valor ou ento a condio que deseja com-
parar o valor resultante da condio. Onde est o valor1 e o valor2 sero indicados os
valores que sero comparados.
As instrues a serem executadas sero as que indicam que a condio ver-
dadeira. Exemplo: se o valor_a_ser_comparado igual ao valor1, ento a instruo
que ser executada a instruo abaixo do case valor1. Caso nenhum case possua o
valor do valor a ser comparado, a instruo a ser executada ser a instruo que est
abaixo do Default. O comando Default semelhante ao Else na estrutura do If.
Para compreendermos melhor o funcionamento do switch, vamos executar o
exemplo a seguir:
Pgina: exemplo23.php
<HTML>
Programao de Pgina WEB.indd 81 27/8/2007 13:22:19
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
82
<HEAD>
<TITLE>Exemplo 23</TITLE>
</HEAD>
<BODY>
<?
// testando o switch
$numero = 10;
// utilizando o switch com varivel
switch($numero){
case 0:
print O valor da varivel 0;
break;
case 5:
print O valor da varivel 5;
break;
case 10:
print O valor da varivel 10;
break;
default:
print O valor da varivel diferente
de 0,5 e 10;
break;
}
print <br><br>;
// utilizando o switch com condio
switch($numero/2){
case 0:
print A diviso varivel por 2 0;
break;
case 5:
Programao de Pgina WEB.indd 82 27/8/2007 13:22:19
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
83
print A diviso varivel por 2 5;
break;
default:
print A diviso varivel por 2 di-
ferente de 0 e 5;
break;
}
?>
</BODY>
</HTML>
3 ESTRUTURAS DE REPETIO
As estruturas de repetio so muito utilizadas quando precisamos executar
um bloco de comandos vrias vezes at que uma dada condio que com o valor
falso. Existem trs tipos de estruturas de repetio: While, Do...While e For. Todas
possuem a mesma funcionalidade, repetir as instrues do bloco de comandos at
que uma dada condio que com o valor falso, porm as trs fazem a validao da
condio de forma diferente.
Vamos analisar cada estrutura de repetio separadamente para compreender
melhor as diferenas entre elas.
3.1 While
A estrutura de repetio while possui a seguinte sintaxe:
While(condio)
Instruo;
Ou utilizando bloco de comandos:
Programao de Pgina WEB.indd 83 27/8/2007 13:22:19
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
84
While(condio){
Instruo1;
Instruo2;
InstruoN;
}
Tal qual o If, a condio entre os parnteses do while devem possuir um valor
verdadeiro para que as instrues sejam executadas. Dessa forma, somente se o re-
sultado da condio for verdadeiro que as instrues sero executadas.
Para utilizar uma estrutura de repetio, importante que, em algum momento,
o valor da condio testado se torne falso, caso contrrio, a aplicao !car em eterno
loop, ou seja, estar executando as instrues eternamente. Isso acontece porque
as instrues somente sero executadas quando o valor da condio for verdadeiro.
Se a condio permanecer eternamente com o valor verdadeiro a aplicao estar
executando as instrues in!nitamente. Essa caracterstica comum para todas as
estruturas de repetio.
No caso espec!co do while, a condio testada no incio da instruo while
e, em seguida, feita a execuo das instrues. Se a condio permanecer com o
valor verdadeiro, as instrues sero executadas novamente e assim sucessivamen-
te, at que o valor da condio se torne falso.
Veja no exemplo abaixo a funcionalidade da estrutura while:
Pgina: exemplo24.php
<HTML>
<HEAD>
<TITLE>Exemplo 24</TITLE>
</HEAD>
<BODY>
<?
// testando o while
$numero = 1;
Programao de Pgina WEB.indd 84 27/8/2007 13:22:19
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
85
// utilizando while para testar se o valor da varivel
$numero menor que 10
while($numero<10){
print O valor da varivel numero .$nu-
mero . <br>;
// utilizando o operador de incremento para
aumentar o valor
++$numero;
// imprime o novo valor da varivel $numero
print O valor da varivel numero agora
.$numero . <BR>;

// veri!ca se o valor da varivel 10 e im-
prime o !m do loop
if($numero==10)
print Fim do Loop;
}
?>
</BODY>
</HTML>
3.2 Do ... while
A estrutura de repetio do...while semelhante estrutura while. A nica dife-
rena entre elas que o while testa a condio no nicio do comando e a estrutura
do...while testa a condio no nal do comando. Isso signica que, se a condio
estiver com o valor falso, utilizando do...while as instrues sero executadas uma
vez. Utilizando while, se a condio estiver com o valor falso, as instrues no sero
executadas.
Veja a sintaxe do do...while:
Programao de Pgina WEB.indd 85 27/8/2007 13:22:19
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
86
Do{
Instruo;
}while(condio);
Diferente das demais estruturas de controle, o do...while obriga a utilizao do
bloco de comando em sua sintaxe.
Vamos ao exemplo utilizando a estrutura do...while:
Pgina: exemplo25.php
<HTML>
<HEAD>
<TITLE>Exemplo 25</TITLE>
</HEAD>
<BODY>
<?
// testando o do...while
$numero = 10;

// utilizando do...while para testar se o valor da varivel
$numero menor que 10
do{
print O valor da varivel numero .$nu-
mero . <br>;
// utilizando o operador de incremento para aumentar o va-
lor
++$numero;
// imprime o novo valor da varivel $numero
print O valor da varivel numero agora .$nu-
mero . <BR>;
Programao de Pgina WEB.indd 86 27/8/2007 13:22:19
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
87
// verica se o valor da varivel maior ou igual 10 e im-
prime o m do loop
if($numero>=10)
print Fim do Loop;
}while($numero<10);
?>
</BODY>
</HTML>
3.3 For
A estrutura de repetio For possui a mesma funo que o While e o Do...Whi-
le, porm sua estrutura e sintaxe so bem diferentes.
O For tambm uma condio e executa as instrues do bloco de comando,
caso o valor da condio seja verdadeiro. Porm no For, a condio baseada em
uma varivel contadora, o que o torna muito til quando temos uma lista de valores
para ser mostrado ou trabalhado e temos o conhecimento do incio e m dessa lista.
imprescindvel que saibamos o incio e o m da lista, pois estes dados so
utilizados na sintaxe do for. Vamos analisar a sintaxe do for:
For(inicializao;condio;incremento ou decremento do con-
tador)
Instruo;
Ou utilizando bloco de comandos:
For(inicializao;condio;incremento ou decremento do conta-
dor){
Instruo1;
InstruoN;
}
Programao de Pgina WEB.indd 87 27/8/2007 13:22:19
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
88
Entre as vrias utilidades que a estrutura For nos possibilita, a principal a faci-
lidade para trabalhar com variveis do tipo array. Como j vimos no captulo sobre os
tipos de dados, um array uma varivel com vrias posies para armazenamento de
valores. Sempre sabemos a quantidade de posies que o array possui, portanto te-
mos as informaes de tamanho dessa lista de variveis. No exemplo abaixo, iremos
compreender melhor a utilizao do For para mostrar os valores das posies de um
Array:
Pgina: exemplo26.php
<HTML>
<HEAD>
<TITLE>Exemplo 26</TITLE>
</HEAD>
<BODY>
<?
// testando o for
$arrayNomes[0] = Joo;
$arrayNomes[1] = Jos;
$arrayNomes[2] = Maria;
$arrayNomes[3] = Felisberto;
// utilizando o for para mostrar os valores do $arrayNomes
for($contador=0;$contador<=3;$contador++){
print $arrayNomes[$contador] . <br>;
}
?>
</BODY>
</HTML>
Programao de Pgina WEB.indd 88 27/8/2007 13:22:20
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
89
4 ESTRUTURAS DE QUEBRA DE FLUXO
As estruturas de quebra de !uxo so geralmente utilizadas para dar suporte s
outras estruturas de controle. So utilizadas para quebrar o !uxo de um procedimento,
parar a execuo de uma instruo que est dentro de um loop, por exemplo, e dar
continuidade nas instrues seguintes.
Existem dois tipos de estruturas de quebra de !uxo: Break e Continue. A seguir
vamos analisar o comportamento dessas duas estruturas.
4.1 Break
A estrutura de controle break pode ser utilizada como suporte pelas estruturas
de repetio: While, Do...While e For e tambm na estrutura de seleo: Switch.
Quando o interpretador PHP encontra o Break dentro de uma estrutura, ime-
diatamente ele pra a execuo das instrues e segue para as demais instrues
de"nidas.
Como j vimos no exemplo do Switch, o Break serve para parar as comparaes
de valores de uma varivel ou condio. Com as estruturas de repetio acontece a
mesma ao. A instruo seguinte ao break no executada e o !uxo de instrues
aps a repetio executado.
O exemplo a seguir queremos imprimir na tela somente os nmeros mltiplos
de 2. Os nmeros que no so mltiplos de 2 no sero impressos na tela.
Pgina: exemplo27.php
<HTML>
<HEAD>
<TITLE>Exemplo 27</TITLE>
</HEAD>
<BODY>
<?
Programao de Pgina WEB.indd 89 27/8/2007 13:22:20
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
90
// testando a quebra de uxo com Break
// utilizando o for para mostrar os nmeros mltiplos de
2
for($numero=0;$numero<=10;$numero++){
if( ($numero%2) == 0 ) {
print $numero . mltiplo de
2<br>;
break;
print Mensagem aps o Break<BR>;
}
}
?>
</BODY>
</HTML>
Ao executarmos o exemplo, apenas uma linha foi mostrada, a linha do nmero
0. Porque isto aconteceu? Porque, aps a impresso da mensagem na tela, o in-
terpretador encontrou a estrutura de quebra de !uxo Break. Quando o interpretador
encontra o Break, pra imediatamente de executar as instrues da estrutura onde o
Break se encontra e passa a executar as instrues que esto na seqncia dessa
estrutura.
A seguir analisaremos a estrutura de quebra de !uxo Continue e utilizaremos
esse mesmo exemplo para analisar a diferena entre as duas estruturas.
4.2 Continue
A estrutura de controle Continue tambm d suporte s estruturas de controle
de repetio. A diferena entre o Break e o Continue: em que o Continue pra a
execuo da estrutura de repetio no momento o interpretador encontra o Continue,
porm ao invs de sair da estrutura de repetio, a execuo direcionada para o
incio da estrutura. Utilizando o for como exemplo, a execuo direcionada para a
primeira linha do For onde testada a condio da varivel contadora.
Programao de Pgina WEB.indd 90 27/8/2007 13:22:20
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
91
Vamos utilizar o mesmo exemplo do Break, alterando-o para Continue e veri!-
car a diferena entre eles.
Pgina: exemplo28.php
<HTML>
<HEAD>
<TITLE>Exemplo 28</TITLE>
</HEAD>
<BODY>
<?
// testando a quebra de !uxo com Continue
// utilizando o for para mostrar os nmeros mltiplos de
2
for($numero=0;$numero<=10;$numero++){
if( ($numero%2) == 0 ) {
print $numero . mltiplo de
2<br>;
continue;
print Mensagem aps o Continue<BR>;
}
}
?>
</BODY>
</HTML>
Aps executarmos o exemplo novamente, trocando o break pelo continue,
podemos observar que os nmeros mltiplos de 2 foram corretamente impressos na
tela. Porm a mensagem que !ca abaixo do continue, assim como quando utilizamos
o break, nunca ser executada.
Programao de Pgina WEB.indd 91 27/8/2007 13:22:20
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
92
Sntese
Nesta aula estudamos:
As estruturas de controle disponveis na linguagem PHP;
Como e quando podemos utilizar as estruturas de controle nas aplicaes;
Desenvolvemos testes para validar a funcionalidade das estruturas de con-
trole.
Exerccios propostos
1) As estruturas de controle disponveis no PHP so ( permitida mltipla es-
colha):
a. Repetio
b. Atribuio
c. Seleo
d. Quebra de Fluxo
2) A estrutura de controle If uma estrutura do tipo (apenas uma alternativa est
correta):
a. Condio
b. Seleo
c. Atribuio
d. Repetio
3) A estrutura de controle Switch se assemelha a outra estrutura de controle.
Qual a estrutura?
a. For
b. If
c. Break
d. While
Programao de Pgina WEB.indd 92 27/8/2007 13:22:20
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
93
4) A estrutura de repetio que testa o valor da condio no nal :
a. While
b. For
c. Do ... While
d. Switch
5) As estruturas de quebra de !uxo so utilizadas para ( permitida mltipla es-
colha):
a. Finalizar uma instruo
b. Dar suporte s outras estruturas de controle
c. Alterar o uxo das estruturas de repetio
d. Interromper a execuo da pgina
Programao de Pgina WEB.indd 93 27/8/2007 13:22:20
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
94
Aula 7
CLASSES E OBJETOS
Caro aluno(a)!
Nesta aula voc estudar sobre programao orienta-
da a objetos na linguagem PHP.
Revisaremos os conceitos bsicos da Orientao a Objetos; veri-
!caremos a aplicao desses conceitos na linguagem PHP e, ao
!nal, construiremos alguns exemplos utilizando a programao
orientada a objetos. O contedo visto nesta aula ser bastante apli-
cado no nosso estudo de caso.
Bons Estudos!
Objetivos da Aula
Ao !nal desta aula, voc dever ser capaz de:
Identi!car os conceitos bsicos de Orientao a Objetos;
Identi!car a sintaxe bsica para trabalhar com Orientao
a Objetos em PHP;
Testar exemplos de programao Orientada a Objetos.
Contedos da Aula

Acompanhe os contedos desta aula. Se voc preferir, assi-
nale-os medida em que for estudando.
Revisando os conceitos bsicos da Orientao a Objetos;
Trabalhando com Classes e Objetos;
Exerccios Propostos.
Programao de Pgina WEB.indd 94 27/8/2007 13:22:20
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
95
1 REVISANDO CONCEITOS BSICOS DA ORIENTAO A OBJETOS
O foco do nosso aprendizado neste curso conhecer a linguagem PHP e as
caractersticas principais para desenvolvermos aplicaes para Internet. O tema Ori-
entao a Objetos, que veri!caremos neste captulo, abordar alguns conceitos bsi-
cos da Orientao a Objetos e tambm demonstrar como podemos, por meio da
linguagem PHP, aplicar seus conceitos no desenvolvimento de aplicaes.
Esses conceitos sero su!cientes para compreendermos como a linguagem
PHP implementa a programao orientada a objetos.
1.1 Classes e Objetos
Na de!nio bsica da orientao a objetos, uma classe pode ser de!nida
como a estrutura que cria novos objetos. Isso signi!ca que todos os objetos utilizados
em um sistema so criados por meio da estrutura das classes.
O que so os objetos e para que servem? Qual a vantagem da utilizao dos
objetos em uma aplicao? Vamos responder essas questes em etapas.
Para compreendermos o que um objeto, vamos relembrar o conceito de
varivel: utilizada em uma aplicao para armazenar um valor, temporariamente, em
memria, durante a execuo de uma aplicao. Essa varivel poder ter o seu valor
alterado, porm isto varia de acordo com os procedimentos de!nidos na aplicao.
Vimos que podemos utilizar variveis do tipo array para armazenar mais de
um valor em memria. Criamos um array com algumas posies e atribumos valores
nessas posies para executar diversos procedimentos durante a execuo da apli-
cao.
Da mesma forma, os objetos tambm sero armazenados em memria, porm
os objetos possuem caractersticas diferentes. Vamos imaginar que estamos desen-
volvendo um sistema acadmico onde h a manuteno do cadastro de alunos. Por
meio dessa manuteno possvel: cadastrar novos alunos, alterar cadastros de alu-
nos existentes, apagar e visualizar o cadastro completo do aluno.
Por meio da funcionalidade: Visualizar Cadastro Completo do Aluno ser
Programao de Pgina WEB.indd 95 27/8/2007 13:22:20
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
96
visualizar todos os dados do cadastro do aluno. Nessa tela sero mostrados os
seguintes dados: Matrcula, Nome, Endereo, Telefone do Aluno. Se quisermos trab-
alhar com os dados de um Aluno nessa tela, permitir a alterao dos dados, por ex-
emplo, teramos que armazenar todos os dados em variveis. Porm essas variveis
e seus valores estariam armazenados na memria em locais diferentes, ou seja, no
estariam agrupadas em um nico local para acesso. Isso poderia aumentar o tempo
na busca pelos dados das variveis em memria, principalmente quando existirem
muitos campos no cadastro de Alunos. Esse problema poderia ser solucionado se
todos os dados estivessem armazenados agrupados na memria.
Quando utilizamos objetos para esses casos, conseguimos agrupar as variveis
em um nico local, permitindo rpido acesso ao dado armazenado em memria. No
exemplo do Aluno, utilizando o conceito de objetos, criaramos um objeto Aluno, que
seria armazenado em memria e, dentro desse objeto, seriam agrupados e armaze-
nados os valores de suas variveis. Em orientao a objetos, as variveis agrupadas
dos objetos so chamadas de atributos.
Assim, o objeto Aluno teria os seguintes atributos: Matrcula, Nome, Endereo
e Telefone, que estariam agrupados em um nico local em memria, facilitando o
acesso aos dados armazenados e tambm a manipulao desses dados. A vanta-
gem, nesse caso, permitir o agrupamento dos dados do Aluno em um nico local,
fazendo grande diferena no desempenho de uma aplicao.
Alm disso, utilizar objetos nos permite ainda outro recurso, a possibilidade de
de!nir algumas funcionalidades espec!cas para cada objeto.
No exemplo do objeto Aluno, de!nimos como atributos desse objeto: Matrcula,
Nome, Endereo e Telefone. Os valores dos atributos sero os dados do Aluno ar-
mazenados no sistema e, para cada registro de Aluno no sistema existir um objeto
Aluno. Como os atributos esto agrupados em um nico local, possvel de!nir fun-
cionalidades para o tratamento dos dados destes atributos.
Analisando novamente as funcionalidades da manuteno do cadastro de Alu-
nos, h uma funcionalidade que permite a alterao de qualquer um dos registros
de Alunos existentes no sistema. Como permitida a alterao de qualquer registro,
identi!camos que essa funcionalidade igual para todos os objetos Aluno, certo? O
sistema tem que permitir que todos os objetos Aluno possam ter os dados de seus
Programao de Pgina WEB.indd 96 27/8/2007 13:22:20
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
97
atributos alterados.
Vamos analisar outra funcionalidade, a que permite apagar os dados dos alu-
nos. Essa funcionalidade tambm permitir apagar qualquer registro de aluno, salvo
algumas restries que podem ser de!nidas na aplicao. Logo, a funcionalidade
remover registro de aluno tambm comum para todos os objetos Aluno.
Aps essa anlise, podemos identicar os seguintes itens:
1. Todos os objetos Aluno tero os atributos: Matrcula, Nome, Endereo e Tele-
fone, dados que so comuns entre todos os registros de alunos do sistema
2. Todos os objetos Aluno podero ter as funcionalidades: Alterar Dados do Alu-
no, Remover Dados do Aluno que tambm so funcionalidades comuns para
todos os registros de alunos do sistema
Ento, alm de permitir armazenar os dados de seus atributos em nico local
para rpido acesso, um objeto tambm permite a denio de funcionalidades para o
tratamento dos valores dos seus atributos. Essa uma das principais vantagens da
utilizao de objetos em aplicaes: manter os atributos e funcionalidades de uma in-
formao, no nosso exemplo a informao Aluno, agrupados em uma nica estrutura:
o objeto.
Conhecendo o que um objeto e quais as vantagens na sua utilizao, vamos
relembrar a denio da classe: pode ser denida como uma estrutura que cria obje-
tos.
por meio da classe que vamos conseguir criar objetos em nossas aplicaes.
A classe ento possuir a estrutura do objeto que vai criar. Vamos utilizar o exemplo
do objeto Aluno para vericar o formato de uma classe:
Classe Aluno
Atributos:
Matrcula
Nome
Endereo
Telefone
Programao de Pgina WEB.indd 97 27/8/2007 13:22:21
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
98
Funcionalidades:
Cadastra Aluno
Altera dados do Aluno
Apaga dados do Aluno
Retorna dados do Aluno
Analisando o formato da classe aluno, veri!camos que foram de!nidos os atrib-
utos utilizados pelo objeto Aluno e tambm suas funcionalidades. A funo da classe
ter a estrutura !nal de como o objeto dever ser criado na memria. Assim, a classe
deve ter a relao de todos os atributos e funcionalidades que o objeto vai ter depois
de criado. Dessa forma, quando precisarmos criar um objeto Aluno, sempre iremos
chamar a classe Aluno para saber qual a estrutura do Aluno que deve ser criada.
Resumindo, podemos de!nir classe e objeto da seguinte forma:
Classe o formato da estrutura que um objeto vai possuir. Sua funo criar
objetos baseados nesse formato.
Objetos so criados por meio de uma classe e permitem agrupar dados de
atributos e funcionalidades de uma informao. Os objetos iro assumir o for-
mato de estrutura de!nido na classe que o criou.
1.2 Estrutura das Classes
Uma classe composta dos seguintes itens:
Atributos
Mtodo Construtor (parmetros do mtodo)
Mtodo Destrutor (parmetros do mtodo)
Mtodos de Funcionalidades (parmetros do mtodo)
No tpico anterior, vimos que os atributos so as posies em memria dos
objetos que armazenam os dados. Os atributos de uma classe devem ser de!nidos de
acordo com os dados dos objetos que desejamos armazenar e/ou manipular.
Quando de!nimos a estrutura de uma classe, podemos incluir um mtodo
construtor. O mtodo construtor sempre ser executado toda vez que a classe for
Programao de Pgina WEB.indd 98 27/8/2007 13:22:21
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
99
utilizada para criar um novo objeto. Uma classe pode ter mais de um mtodo con-
strutor, mas para isso dever ser aplicado o conceito de sobrecarga de mtodos dos
conceitos da Orientao a Objetos.
Fique sabendo
A sobrecarga de mtodos um recurso da Orientao a Objetos que permite a
criao de um mtodo com o nome de um outro j existente, porm com parme-
tros diferentes quantidade de parmetros que o mtodo ir receber e/ou tipo de
dados desses parmetros.
O mtodo destrutor, por sua vez, sempre executado quando um objeto
apagado da memria. Esta ao acontece quando a aplicao ou um procedimento
espec!co da aplicao executado e a utilizao do objeto em memria no mais
necessria. Para evitar que os objetos !quem em excesso na memria objetos que
no sero mais utilizados pela aplicao no procedimento so destrudos e removi-
dos da memria. Assim, quando a ao executada, o mtodo destrutor da classe
executado.
Os mtodos de funcionalidades de uma classe so aqueles que possuem as
funcionalidades de um objeto. Para cada funcionalidade do objeto, teremos um mto-
do de funcionalidade de!nido dentro da classe. A ao que o mtodo ir executar tam-
bm ser de!nida dentro da classe, pois a ao da funcionalidade j estar completa
e disponvel para ser utilizada pelo objeto, assim que o objeto for criado.
Todos os mtodos podem receber parmetros da aplicao/procedimento que
o chamou. Os parmetros so opcionais e podem ser utilizados para auxiliar na fun-
o que o mtodo ir desempenhar. Os parmetros geralmente so variveis que a
aplicao/procedimento utiliza para o auxlio da execuo de alguma funo. Vamos
considerar, por exemplo, que temos uma classe que cria objetos e realiza clculos
matemticos. Nessa classe h o mtodo: soma que recebe dois nmeros como par-
metro e retorna a soma desses dois nmeros. Nesse caso, os nmeros foram pas-
sados por parmetro para auxiliar na execuo da funo do mtodo: realizar a soma
dos nmeros recebidos por parmetro.
No prximo tpico, veri!caremos qual a sintaxe para a de!nio das classes
Programao de Pgina WEB.indd 99 27/8/2007 13:22:21
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
100
e como feita a criao dos objetos por meio de uma classe.
2 TRABALHANDO COM CLASSES E OBJETOS
Quando de!nimos uma classe em PHP, devemos utilizar a seguinte sintaxe:
class NomeDaClasse{
[modicador] atributo1;
[modicador] atributoN;
[modicador] function mtodo1([parmetros]){
Instruo1;
InstruoN;
}
[modicador] function mtodo1([parmetros]){
Instruo1;
InstruoN;
}
}
Observemos que existem alguns itens entre colchetes, so os modi!cadores e
os parmetros, representados entre colchetes, pois a de!nio deles opcional. Isso
signi!ca que no necessrio informar estes itens, quando de!nimos uma classe.
Utilizamos parmetros nos mtodos somente quando este precisa realizar alguma
funo que depende do valor de uma varivel externa, caso contrrio, a passagem de
parmetros para o mtodo descartada.
Os modi!cadores indicados na sintaxe da classe so os comandos que de!-
nem a visibilidade dos itens da classe e, conseqentemente, do objeto criado por meio
dela. A visibilidade identi!car como os atributos e mtodos sero utilizados por toda
a aplicao. H trs tipos de visibilidade:
Programao de Pgina WEB.indd 100 27/8/2007 13:22:21
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
101
1. Public deixa os atributos/mtodos pblicos para toda a estrutura da apli-
cao.
2. Protected permite que somente algumas pginas e objetos do sistema ten-
ham acesso aos atributos e mtodos da classe, que !cam protegidos e podero
ser acessados somente por pginas e objetos que fazem parte do mesmo pa-
cote mesmo caminho fsico onde se encontra o arquivo da classe.
3. Private tornar os atributos/mtodos privados. Isso signi!ca que somente
a prpria classe/objeto poder acessar e manipular os atributos e mtodos
de!nidos como privados.
Geralmente, os atributos de uma classe so de!nidos como privados utilizam
o modi!cador private no incio da declarao - porque, segundo o conceito de encap-
sulamento da orientao a objetos, somente o prprio objeto poder manipular seus
atributos, mantendo a integridade dos dados dos objetos e evitando que procedimen-
tos alheios ao objeto prejudiquem os dados armazenados.
Vamos, agora, criar nossa primeira classe em PHP, utilizando o exemplo a
seguir.
Pgina: class.operacao.php
<?
// declara a classe
// o objeto que for criado por meio desta classe assumir
a visibilidade e nome // da classe
class Operacao{
//declara um atributo
private $resultado;
// declara o mtodo adio
// o mtodo recebe dois nmeros para executar o clculo e
retornar o
// resultado
Programao de Pgina WEB.indd 101 27/8/2007 13:22:21
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
102
Public function adicao($numero1, $numero2){
$this->resultado = $numero1 + $numero2;
return $this->resultado;
}

}
?>
Podemos executar o arquivo da classe no VertrigoServ para validar se no h
erro, porm no ser mostrada nenhuma mensagem na tela, porque criamos apenas
o formato da classe, ou seja, a estrutura que um objeto ir possuir. Para testarmos
o funcionamento dessa classe, vamos criar outro arquivo de exemplo que utilizar
a estrutura da classe para criar objetos: Operacao. Quando utilizamos uma classe
para criar um objeto, dizemos que instanciamos um novo objeto. Todos os objetos
so instanciados por meio de uma classe j de!nida. Esse tambm um conceito da
Orientao a Objetos.
Vamos agora criar um novo arquivo de exemplo para testarmos o funcionamen-
to da classe: Operacao. Nesse arquivo vamos disponibilizar um formulrio HTML com
dois campos para que possamos informar dois nmeros. Depois iremos submeter os
valores dos campos para esse mesmo arquivo vamos utilizar a funo que veri!ca
se existe uma varivel setada, nesse caso, as duas variveis que sero enviadas pelo
navegador e instanciar um objeto Operacao para utilizar o mtodo: adicao desse
objeto.
Pgina: exemplo29_form.php
<HTML>
<HEAD>
<TITLE>Exemplo 29</TITLE>
</HEAD>
<BODY>
<!--
Este um comentrio em HTML!
Programao de Pgina WEB.indd 102 27/8/2007 13:22:21
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
103
Quando queremos que o formulrio envie as variveis para a
mesma pgina, no especicamos o atributo: action do co-
mando form
-->
<form name=form1 method=post>
Nmero 1: <input type=text name=numero1><br>
Nmero 2: <input type=text name=numero2><br>
<input type=submit name=btnEnviar value=Calcular
Soma>
</form>
<?
//verica se existe a varivel de navegador numero1
if(isset($_POST[numero1])){
//cria novas variveis com base nas variveis de navega-
dor
$num1 = $_POST[numero1];
$num2 = $_POST[numero2];

//verica se as variveis possuem valor diferente de
vazio
if(!empty($num1) && !empty($num2)){

// inclui o arquivo que possui a estrutura da classe
para permitir a
// criao do objeto
require_once(class.operacao.php);

// cria o objeto
$objOperacao = new Operacao();
// a partir de agora a varivel: $objOperacao um
Programao de Pgina WEB.indd 103 27/8/2007 13:22:21
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
104
objeto que possui a estrutura
// da classe operao
// vamos ento chamar o mtodo adicao e obter o re-
sultado da soma e mostrar
// o resultado na tela
print $objOperacao->adicao($num1,$num2) . <br>;

// como j no precisamos do objeto: $objOperacao,
vamos destru-lo
Unset($objOperacao);
}
}
?>
</BODY>
</HTML>
Ao analisarmos o cdigo fonte do exemplo29.php, podemos identicar trs co-
mandos que ainda no foram utilizados:
1. require_once(arquivo) esse comando permite incluir um arquivo php den-
tro de outro arquivo. Permite estruturarmos e organizarmos melhor os arquivos
da aplicao. Existem outros dois comandos semelhantes ao require_once():
include() e require().
2. new NomeClasse() permitir a criao de um objeto com base na estrutura
da classe identicada.
3. -> - utilizado somente pelos objetos para chamar e executar as instrues
de um mtodo.
As demais instrues utilizadas no exemplo29.php j foram vistas nos captu-
los anteriores.
Ao executarmos o exemplo29.php no VertrigoServ, ser mostrado o formulrio
HTML com dois campos de texto para preenchimento. Aps informarmos os nmeros
e clicarmos no boto: Calcular Soma, as validaes sero feitas, o objeto Operacao
Programao de Pgina WEB.indd 104 27/8/2007 13:22:21
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
105
ser criado e o mtodo: adicao executado. Como o mtodo adicao retorna o resultado,
podemos imprimir o resultado na tela. Ao nal, como no iremos mais utilizar o objeto:
Operao, podemos destru-lo, removendo-o da memria.
Sntese
Nesta aula zemos uma reviso sobre os conceitos bsicos da Orientao a
Objetos. Estudamos a sintaxe bsica da programao orientada a objetos em PHP
e analisamos alguns exemplos da aplicao da programao orientada a objetos em
PHP.
Exerccios propostos
1) A diferena entre uma classe e um objeto (apenas uma alternativa est cor-
reta):
a. O objeto armazenado em memria e a classe no
b. A classe possui a estrutura de um objeto
c. O objeto possui a estrutura de uma classe
d. A classe armazena variveis na memria
2) A sintaxe correta para criar um objeto (apenas uma alternativa est cor-
reta):
a. $objeto = TipoObjeto();
b. objeto = new TipoObjeto();
c. objeto = TipoObjeto()
d. $objeto = new TipoObjeto();
3) Exerccio prtico:
Desenvolva os mtodos: subtrao, multiplicao e diviso para a classe: class.op-
eracao.php e altere o formulrio do exemplo29.php para permitir que o usurio sele-
cione a operao que deseja realizar.
Programao de Pgina WEB.indd 105 27/8/2007 13:22:21
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
106
Aula 8
CONTROLE DE SESSO
Caro aluno(a)!
Nesta oitava aula voc estudar sobre o controle de
sesso em PHP. Vericaremos o que uma sesso e
como podemos utiliz-la em aplicaes para Internet. O controle de
sesso muito utilizado, principalmente por aplicaes que pos-
suem restrio de acesso de usurios.
Bons Estudos!
Objetivos da Aula
Ao nal desta aula, voc dever ser capaz de:
Identicar como o funcionamento das sesses;
Testar o controle de sesso;
Utilizar o controle de sesso em suas aplicaes.
Contedos da Aula

Acompanhe os contedos desta aula. Se voc preferir, assi-
nale-os medida em que for estudando.
Introduo ao controle de sesso;
Testando o controle de sesso em PHP;
Exerccios propostos.
Programao de Pgina WEB.indd 106 27/8/2007 13:22:22
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
107
1 INTRODUO AO CONTROLE DE SESSO
No primeiro captulo deste livro-texto, vimos como utilizar a arquitetura cliente-
servidor quando acessamos aplicaes na Internet. Assim, todas as aplicaes de-
senvolvidas para Internet estaro instaladas em um servidor que disponibilizar a
aplicao aos usurios, por meio da conexo entre a mquina cliente e o servidor.
Quando o usurio abre o navegador de Internet e faz a primeira requisio de
acesso aplicao no servidor, criada uma sesso de conexo entre a mquina cli-
ente e o servidor, mantida pela prpria mquina cliente at a !nalizao do acesso
aplicao. A sesso ser encerrada somente quando o usurio fechar a aplicao ou
por algum imprevisto na conexo cliente-servidor.
O controle de sesso muito utilizado por aplicaes que possuem acesso
restrito. Utilizaremos alguns exemplos que demonstram esse tipo de recurso.
No captulo 4 deste livro-texto Trabalhando com Variveis e Constantes -
tivemos uma pequena introduo s variveis de sesso. Quando uma conexo cli-
ente-servidor estabelecida, a sesso do cliente criada. Aps a criao da sesso,
possvel utiliz-la para criar variveis.
A sesso uma identi!cao da conexo do cliente com o servidor e todas
as variveis de sesso criadas estaro automaticamente relacionadas com essa que
ser mantida pela mquina cliente. Caso seja encerrada, todas as variveis relacio-
nadas com a sesso tambm sero encerradas. Dessa forma, quando trabalhamos
com variveis de sesso necessrio sempre veri!car se ela est ativa e depois, se
a varivel de sesso existe. A sintaxe para criao de uma varivel de sesso :
$_SESSION[nome_da_variavel] = valor_da_variavel
A varivel de sesso, assim como as outras, tambm pode receber qualquer
valor, pois o interpretador PHP utilizar a tipagem automtica para atribuir o tipo de
dado varivel.
Para utilizarmos variveis de sesso dentro de uma aplicao, precisamos faz-
er uso das seguintes funes do PHP:
session_start() = inicia a sesso que permitir a manipulao de variveis de
sesso. Funo sempre utilizada quando houver procedimentos com variveis
Programao de Pgina WEB.indd 107 27/8/2007 13:22:22
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
108
de sesso.
session_is_registered(nome_da_variavel) - verica se a varivel de sesso
existe na sesso. Essa funo ir retornar um valor booleano - verdadeiro ou
falso.
session_destroy() = naliza todas as variveis de sesso registradas.
Se, por algum motivo, desejarmos encerrar uma nica varivel de sesso, de-
veremos utilizar a funo unset(nome_da_variavel), pois a funo session_destroy(),
naliza todas as variveis mantidas na sesso.
2 TESTANDO O CONTROLE DE SESSO EM PHP
Para testarmos o controle de sesso em PHP, utilizaremos trs arquivos de ex-
emplo: exemplo30.php, que possuir um formulrio HTML de autenticao de usuri-
os; o exemplo31.php, que far a validao dos dados informados no formulrio HTML,
criar uma varivel de sesso e redirecionar para o exemplo32.php. O exemplo32.
php estar validando a criao da varivel de sesso e mostrando uma mensagem na
tela.
Pgina: exemplo30_form.php
<HTML>
<HEAD>
<TITLE>Exemplo 30</TITLE>
</HEAD>
<BODY>
<form name=form1 action=exemplo31.php method=post>
Login: <input type=text name=login><br>
Senha: <input type=password name=senha><br>
<input type=submit name=btnEnviar value=Autenticar
Usurio>
</form>
</BODY>
</HTML>
Programao de Pgina WEB.indd 108 27/8/2007 13:22:22
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
109
Pgina: exemplo31_form.php
<?
//inicia a sesso
session_start();
if(isset($_POST[login])){
$login = $_POST[login];
$senha = $_POST[senha];
//verica se o login e senha informados esto corretos
if($login == user && $senha == 1234){

//cria a varivel de sesso
$_SESSION[user] = $login;
}
}
// redireciona para a tela exemplo32.php
header(location:exemplo32.php);
?>
Pgina: exemplo32_form.php
<?
//inicia a sesso
session_start();
?>
<HTML>
<HEAD>
<TITLE>Exemplo 32</TITLE>
</HEAD>
<BODY>
Programao de Pgina WEB.indd 109 27/8/2007 13:22:22
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
110
<?
//verica se a varivel de sesso foi criada
if(session_is_registered(user)){
print Sesso criada com sucesso.;
} else {
print A sesso no foi criada, login e senha incorre-
tos;
}
//destroi a sesso
session_destroy();
?>
<br><br>
<a href =exemplo30.php>Voltar para tela de Autenticao</
a>
</BODY>
</HTML>
Teste os exemplos informando o login e senha corretos, denido no exemplo31.
php e tambm incorretos para validar a criao da varivel de sesso. Uma sesso
pode ter N variveis de sesso, porm, por medida de segurana, no aconsel-
hvel manter muitos dados em sesso.
Antes de nalizarmos esse captulo, vamos analisar uma nova instruo uti-
lizada nos exemplos acima:
header(location:exemplo32.php);
O comando header pode ser utilizado para vrios procedimentos. No exemplo
acima, utilizamos o comando para que, ao nal da execuo do exemplo31.php, o
usurio fosse redirecionado para o exemplo32.php. O item location: o subcomando
do header que permite esse tipo de recurso. Porm somente ser possvel utilizar este
redirecionamento quando nenhum tipo de impresso foi feito na tela. Se, por acaso,
no for feita nenhuma impresso na tela, mas houver algum comando HTML como
o <HTML></HTML> ou outro comando HTML qualquer, o recurso no vai funcionar
e ser retornado um erro. Portanto, utilize esse recurso somente quando houver
Programao de Pgina WEB.indd 110 27/8/2007 13:22:22
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
111
certeza de que no ser impresso nada na tela do usurio.
Outra dica importante com relao funo: session_start(). Se voc vericar
o exemplo32.php, a funo est logo no topo da pgina, antes mesmo do comando
HTML: <HTML></HTML>. O session_start() tambm tem o mesmo tipo de requisito
que o comando header, ou seja, deve ser utilizado antes de qualquer impresso na
tela, mesmo que sejam apenas comandos HTMLs.
Sntese
Nesta aula estudamos como funciona o Controle de Sesso; introduzimos al-
guns contedos sobre Controle de Sesso em PHP e analisamos exemplos de testes
para vericar como funcionam as sesses em PHP.
Exerccios propostos
1) A sesso pode ser denida como (apenas uma alternativa correta):
a. Uma varivel
b. Uma constante
c. Uma identicao de conexo
d. Uma estrutura de controle
2) Quando utilizamos variveis de sesso, conseqentemente estas variveis
estaro armazenadas:
a. No banco de dados
b. No HD disco fsico
c. Na memria
d. Na sesso da mquina cliente
Programao de Pgina WEB.indd 111 27/8/2007 13:22:22
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
112
3) A sesso criada quando:
a. Um usurio abre o navegador
b. Um usurio faz uma autenticao correta em um sistema
c. Uma mquina cliente faz uma requisio ao servidor
d. Uma mquina cliente efetiva uma conexo de acesso com o servidor
4) Quando precisamos realizar operaes com variveis de sesso devemos
sempre utilizar a funo:
a. Session_is_registered()
b. Session_destroy()
c. $_SESSION[]
d. Session_start()
5) A funo que encerra todas as variveis de sesso mantidas na sesso da
mquina cliente a:
a. Session_is_registered()
b. Session_destroy()
c. $_SESSION[]
d. Session_start()
Programao de Pgina WEB.indd 112 27/8/2007 13:22:22
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
113
Aula 9
TRABALHANDO COM BANCO DE
DADOS MYSQL
Caro aluno(a)!
Nesta nona aula estudaremos as principais formas de
integrao do PHP com o banco de dados MySQL.
Identicaremos as principais funes para conexo e manipulao
dos dados de um banco de dados e os procedimentos necessrios
para a conexo com esse banco.
Bons Estudos!
Objetivos da Aula
Ao nal desta aula, voc dever ser capaz de:
Identicar quais so as funes necessrias para traba-
lhar
com o MySQL;
Identicar os passos para fazer uma conexo com o MyS-
QL;
Testar a integrao do PHP com o MySQL.
Contedos da Aula

Acompanhe os contedos desta aula. Se voc preferir, assi-
nale-os medida em que for estudando.
Introduo;
Conexo com o MySQL;
Executando comandos de manipulao de dados;
Executando comandos de seleo de dados;
Exerccios Propostos.
Programao de Pgina WEB.indd 113 27/8/2007 13:22:22
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
114
1 INTRODUO
Grande parte das aplicaes disponveis na Internet, atualmente, possuem
contedo dinmico, ou seja, possuem o contedo armazenado em um banco de da-
dos. Manter o contedo atualizado desse tipo de aplicao muito mais fcil e rpido
do que manter o contedo de aplicaes estticas, desenvolvidas apenas com HTML,
pois no necessrio alterar o leaiute da pgina a cada alterao de contedo. Basta
que esteja de!nido onde sero publicados os contedos armazenados em banco de
dados e, conforme so atualizados sero disponibilizados automaticamente no local
de!nido.
Para que essa facilidade na manuteno de contedos se torne real, ne-
cessrio utilizar uma linguagem de programao de aplicaes para Internet que
tenha suporte e integrao a um banco de dados.
A linguagem PHP, atualmente na verso 5, possui suporte e integrao em
grande parte dos bancos de dados. Alm disso, a combinao: PHP e MySQL tem
sido um par perfeito desde o incio da popularidade do PHP.
Assim, nesse captulo, estudaremos as formas de integrao que a linguagem
PHP disponibiliza para podermos desenvolver aplicaes com contedo dinmico ar-
mazenado no banco de dados MySQL.
Se voc fez a instalao do VertrigoServ, tambm j tem instalado e con!gu-
rado em sua mquina a verso 5 do MySQL.
1.1 Conectando com o MySQL
A linguagem PHP disponibiliza vrias funes que permitem a integrao com o
banco de dados MySQL. Identi!car essas funes no manual do PHP bem simples,
pois todas elas iniciam com o termo: mysql.
A conexo com o servidor de banco de dados MySQL, em PHP, feita por meio
da funo mysql_connect, que tem a seguinte sintaxe:
mysql_connect(nome_servidor[:porta], login_usuario, senha_usuario);
Analisando a sintaxe da funo de conexo com o servidor, podemos veri!car
Programao de Pgina WEB.indd 114 27/8/2007 13:22:23
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
115
que necessria a passagem de trs parmetros:
1. O nome do servidor onde est instalado o MySQL e, caso o MySQL no
esteja instalado na porta padro, deve-se informar, aps o nome do servidor, o
nmero da porta;
2. O login do usurio que possui acesso ao servidor MySQL e tambm ao
banco de dados que se deseja conectar;
3. E a senha do usurio que est conectando no servidor MySQL.
A funo de conexo ir retornar um valor inteiro, que o identi!cador da con-
exo estabelecida e dever ser armazenado numa varivel para ser utilizado depois
na seleo do banco de dados e tambm nos procedimentos de manipulao com o
banco de dados.
Veja o exemplo de conexo com o banco de dados:
$conexao = mysql_connect(localhost, root, vertrigo);
Utilizando o exemplo acima, se a conexo for bem sucedida, ou seja, se existir
um servidor MySQL chamado: localhost que possua o usurio e a senha fornecida, o
identi!cador da conexo com o servidor !car armazenado na varivel $conexo.
Aps efetuar com sucesso a conexo com o MySQL, ser necessrio sele-
cionar o banco de dados que possui os dados da aplicao. Essa seleo feita por
meio da funo int mysql_db_query, que possui a seguinte sintaxe:
mysql_db_query(nome_banco, identi!cador_conexao);
A funo de seleo do banco de dados que ir retornar 0, se no encontrar
o banco de dados no servidor especi!cado pelo identi!cador da conexo, e 1, em
caso de sucesso. Veja o exemplo de seleo do banco de dados revenda que ser
utilizado no nosso estudo de caso:
mysql_select_db(revenda, $conexao);
Caso a seleo do banco de dados seja feita com sucesso, ser possvel reali-
zar qualquer manipulao nos dados desse banco de dados, desde que o usurio uti-
lizado para a conexo com o servidor tenha permisso para realizar tais operaes.
1.2 Executando comandos de manipulao de dados
Para executar comandos de manipulao de dados no MySQL, por meio da
Programao de Pgina WEB.indd 115 27/8/2007 13:22:23
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
116
linguagem PHP, necessrio que a conexo com o MySQL e a seleo do banco de
dados j tenha sido efetuada com sucesso. Caso contrrio, a tentativa de manipula-
o ir retornar um erro.
Para manipular dados em um banco de dados, utilizamos os seguintes coman-
dos SQL:
1. INSERT para inserir registros
2. UPDATE para alterar registros
3. DELETE para excluir registros
No entraremos em detalhes sobre a sintaxe e os padres da linguagem SQL
aqui, pois esse conhecimento um pr-requisito para cursar esta disciplina.
Os comandos SQL sero executados na linguagem PHP por meio da funo:
mysql_query cuja sintaxe :
mysql_query(comando_sql, identicador_da_conexao);
O retorno da funo ser 0, em caso de falha, e 1, em caso de sucesso. Quan-
do a funo for executada com sucesso, signi!ca que instruo SQL foi executada
corretamente pelo servidor MySQL e a manipulao dos dados foi executada com
sucesso.
1.3 Executando comandos de seleo de dados
Os comandos de seleo de dados tambm so executados por meio da fun-
o mysql_query. A diferena nesse caso, que a funo ter um valor diferente de
0 e 1. O valor de retorno, nesse caso, um identi!cador que possui a identi!cao
do resultado da seleo realizada. Para visualizarmos o resultado da seleo, ser
necessrio utilizarmos a funo mysql_result, cuja sintaxe :
mysql_result(identicador_resultado, linha_registro, campo_registro);
O identi!cador do resultado obtido por meio do retorno da funo mysql_que-
ry. A linha especi!ca a linha de registro a ser exibida, j que uma query SELECT pode
retornar diversas linhas de registros, e campo o identi!cador do campo a ser exibido.
Vejamos um exemplo:
$consulta = SELECT nome, email FROM usuario WHERE nome
LIKE Joo;
Programao de Pgina WEB.indd 116 27/8/2007 13:22:23
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
117
$resultado = mysql_query($consulta, $conexao);
Print Nome: . mysql_result($resultado,0,nome) . <br>
;
Print e-mail: . mysql_result($resultado,0,email) .
<br>;
A funo mysql_result no a nica que permite o tratamento do resultado
de um comando de seleo. Inclusive, para resultado com muitas linhas de registro,
podemos dizer que ela desaconselhvel. Por isso, aconselhvel utilizar outra fun-
o, por exemplo, a funo mysql_fetch_row, que possui a seguinte sintaxe:
mysql_fetch_row(identi!cador_resultado);
O retorno dessa funo ser um array de registros. Assim torna-se mais fcil
tratar um resultado com vrias linhas, e sem utilizar os nomes dos campos na rotina
de tratamento do resultado. Vamos analisar o mesmo exemplo, porm agora utilizan-
do a funo mysql_fetch_row:
$consulta = SELECT nome, email FROM usuario;
$resultado = mysql_query($consulta, $conexao);
while ($linha = mysql_fetch_row($resultado)) {
print Nome: . $linha[0] . <BR>;
print e-mail: . $linha[1] . <BR>;
}
Nessa aula conhecemos apenas algumas funes bsicas que permitem a in-
tegrao do PHP com o banco de dados MySQL, porm existem outras funes que
auxiliam nessa integrao. Na prxima aula desenvolveremos um estudo de caso e
aplicaremos os conceitos de integrao com o banco de dados MySQL vistos nesse
captulo.
Programao de Pgina WEB.indd 117 27/8/2007 13:22:23
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
118
Sntese
Nesta aula estudamos as principais funes para integrao entre o PHP e o
MySQL. Tambm estudamos os procedimentos que devem ser executados para a
conexo com o MySQL, alm de termos analisado exemplos de integrao e manipu-
lao dos dados de um banco de dados MySQL.
Exerccios propostos
Para resolver os exerccios seguintes, obrigatria a criao do banco de da-
dos revenda do modelo ER abaixo. Este banco de dados tambm ser utilizado
no estudo de caso da prxima aula.
1) Crie um arquivo em PHP que faa a conexo com o banco de dados MySQL,
selecione o banco de dados revenda e em seguida, utilize as funes de integ-
rao para executar os seguintes comandos SQL:
a. Inserir os seguintes registros na tabela Marcas:
i. 1 Citroen
ii. 2 Audi
Programao de Pgina WEB.indd 118 27/8/2007 13:22:23
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
119
iii. 3 Renault
b. Selecionar e imprimir todos os registros inseridos na tabela Marcas.
c. Alterar a descrio do registro nmero 3 da tabela Marcas para Pegeout.
d. Selecionar e imprimir todos os registros inseridos na tabela Marcas depois da alte-
rao.
Programao de Pgina WEB.indd 119 27/8/2007 13:22:23
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
120
Aula 10
ESTUDO DE CASO:
REVENDA DE AUTOMVEIS
Caro aluno(a)!
Nesta dcima aula reveremos todos os conceitos vis-
tos at agora e consolidaremos nossos conhecimentos
com o incio do desenvolvimento de uma aplicao para revenda
de automveis.
Veri!caremos os passos principais para o desenvolvimen-
to de uma aplicao e efetivaremos uma funcionalidade completa
para manuteno dos dados de uma tabela no banco de dados. Ao
!nalizar essa aula, !car como desa!o para voc, desenvolver o
restante da aplicao seguindo as dicas e o conhecimento adquiri-
do na disciplina.
Bons Estudos e bom desenvolvimento!
Objetivos da Aula
Ao !nal desta aula, voc dever ser capaz de:
Consolidar os conhecimentos adquiridos na disciplina;
Iniciar o desenvolvimento de uma aplicao de revenda de
automveis.
Contedos da Aula

Acompanhe os contedos desta aula. Se voc preferir, assi-
nale-os medida em que for estudando.
Caractersticas da Aplicao;
Desenvolvendo as Classes de Conexo;
Desenvolvendo as Classes de Negcio;
Desenvolvendo a interface com usurio.
Programao de Pgina WEB.indd 120 27/8/2007 13:22:23
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
121
1 CARACTERSTICAS DA APLICAO
A aplicao que iniciaremos nessa aula refere-se ao modelo ER, da pg. , da
aula anterior. A aplicao tem como objetivo atender as necessidades de uma revenda
de automveis, cuja inteno desenvolver um site na Internet que permita ao usurio
selecionar marcas e/ou modelos de automveis e visualizar uma lista de automveis
disponveis para venda.
Veri!caremos quais so os primeiros passos para desenvolver a aplicao,
criar as principais classes do sistema, a tela principal e a manuteno dos registros de
uma das tabelas na administrao do site. Ao !nalizarmos esses itens, voc j ser
capaz de dar continuidade na aplicao e desenvolver os demais recursos.
Ao !nal do captulo, algumas sugestes de funcionalidades sero apresenta-
das para enriquecer a aplicao da revenda de automveis.
2 DESENVOLVENDO AS CLASSES DE CONEXO
A primeira tarefa que devemos realizar, para desenvolvermos a aplicao da
revenda de automveis a criao das classes que permitiro criar os objetos de
conexo e acesso aos dados para seleo e manipulao.
Criaremos, ento, duas classes:
1. A classe: class.conexaobanco.php, responsvel pela conexo com o
MySQL
2. E a classe: class.acessobanco.php, cujos mtodos sero operaes de ma-
nipulao e seleo que podem ser executadas no banco de dados.
Essas duas classes sero o corao da nossa aplicao, pois todos os objetos
do sistema as utilizaro para fazer a conexo e seleo/manipulao dos dados no
banco de dados.
Vamos ento analisar o cdigo fonte da classe: class.conexaobanco.php:
<?php
class ConexaoBanco {
//Propriedade Esttica referenciando um tipo da mesma Classe
Programao de Pgina WEB.indd 121 27/8/2007 13:22:24
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
122
static $instancia = false;

private $server = localhost;
private $user = root;
private $password = vertrigo;
private $conexao;

//Construtor Private - No possvel utilizar new em out-
ras classes
private function __construct() {

//faz a conexo com o banco de dados
$this->conexao = mysql_connect($this->server, $this-
>user, $this->password);
}

//Metodo para recuperar instancia
public function getInstancia() {
if (!ConexaoBanco::$instancia) {

ConexaoBanco::$instancia = new ConexaoBanco();//chamando
construtor
}
return ConexaoBanco::$instancia;
}
public function getConexao(){
return $this->conexao;
}
//destrutor - destri conexo com o banco
function __destruct(){
Programao de Pgina WEB.indd 122 27/8/2007 13:22:24
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
123
mysql_close($this->conexao);
}
}
?>
Analisando o cdigo fonte da classe, observamos haver um mtodo construtor,
que farr a conexo com o MySQL, por meio dos dados dos atributos privados j
selecionados com os dados de conexo com o MySQL. Nessa classe, existe tambm
o mtodo destrutor, que fechar a conexo com o banco de dados, quando o objeto
for nalizado/destrudo. A funo que fecha a conexo com o banco de dados a
mysql_close.
Os outros dois mtodos da classe, o getConexao: retorna o identicador da
conexo realizada e o getInstancia sempre retornar o mesmo objeto em memria
para os demais objetos da aplicao. Esse mtodo foi congurado dessa forma para
prevenir o problema de estouro de pool no banco de dados. O problema ocorre
quando muitas conexes com o banco de dados so inicializadas e no so nal-
izadas. Essas conexes que cam abertas iro consumir os recursos do banco at
esgotar e isso gerar o famoso estouro de pool. No nosso caso, utilizando o objeto
conexaobanco, haver sempre uma nica conexo e, ao nal da aplicao, essa con-
exo ser devidamente nalizada.
Agora vamos analisar o cdigo-fonte da classe: class.acessobanco.php:
<?php
require(class.conexaobanco.php);
class AcessoBanco{
private $base = revenda;
private $conexao;
//mtodo construtor
public function AcessoBanco(){
Programao de Pgina WEB.indd 123 27/8/2007 13:22:24
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
124
//conexo com o banco de dados
$oConexaoBanco = ConexaoBanco::getInstancia();
$this->conexao = $oConexaoBanco->getConexao();

}
//mtodo que retorna o valor do campo informado no parmet-
ro
public function getValorCampo($paramCampo, $paramFrom,
$paramWhere){

$valorCampo = ;

//comando SQL que busca o valor do campo informado
$comandoSql = SELECT . $paramCampo . FROM .
$paramFrom . WHERE . $paramWhere;

//executa o comando SQL no banco de dados
$resultado = mysql_db_query ($this->base, $comandoSql,
$this->conexao);
//pega a qtde de registros retornados
$qtdeRegistros = mysql_num_rows ($resultado);
if ($qtdeRegistros > 0) {
$valorCampo = mysql_result($resultado,0,$paramCa
mpo);
}
return $valorCampo;

}
Programao de Pgina WEB.indd 124 27/8/2007 13:22:24
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
125
//mtodo que seleciona registros no banco de dados
public function selectRegistro($paramTabela, $paramCampos,
$paramCondicao = , $paramOrdenacao = ){

//comando SQL que seleciona os dados no banco de da-
dos
$comandoSql = SELECT . $paramCampos . FROM .
$paramTabela;
//inclui condio quando existir
if (!empty($paramCondicao)){
$comandoSql .= WHERE . $paramCondicao;
}

//inclui ordenao quando existir
if (!empty($paramOrdenacao)){
$comandoSql .= ORDER BY . $paramOrdenacao;
}

//executa o comando SQL no banco de dados
$resultado = mysql_db_query ($this->base, $comandoSql,
$this->conexao);
$i = 0;

$arrayRegistro = array();

//seta o array de Registros com os registros retorna-
dos
while ($registro = mysql_fetch_array ($resultado)) {
$arrayRegistro[$i] = $registro;
$i++;
Programao de Pgina WEB.indd 125 27/8/2007 13:22:24
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
126
}

return $arrayRegistro;

}


//mtodo que insere registros no banco de dados e retorna
o ltimo id inserido
public function insertRegistro($paramTabela, $paramCampos,
$paramValores){

$id = 0;

//comando SQL que insere os dados no banco de dados
$comandoSql = INSERT INTO . $paramTabela . ( .
$paramCampos . ) VALUES( . $paramValores . ) ;
//executa o comando SQL no banco de dados
$resultado = mysql_db_query ($this->base, $comandoSql,
$this->conexao);

//veri!ca se deve ser retornado o id
$id = mysql_insert_id($this->conexao);

//veri!ca se teve erro no query
if (mysql_errno($this->conexao)){
echo mysql_error($this->conexao);
}

return $id;
}
Programao de Pgina WEB.indd 126 27/8/2007 13:22:24
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
127
//mtodo que altera registros no banco de dados
public function updateRegistro($paramTabela, $paramCampos,
$paramCondicao){
$resultado = 0;

//comando SQL que altera os dados no banco de dados
$comandoSql = UPDATE . $paramTabela . SET .
$paramCampos . WHERE . $paramCondicao;
//executa o comando SQL no banco de dados
$resultado = mysql_db_query ($this->base, $comandoSql,
$this->conexao);
//verica se teve erro no query
if (mysql_errno($this->conexao)){
echo mysql_error($this->conexao);
}
return $resultado;

}


//mtodo que altera registros no banco de dados
public function deleteRegistro($paramTabela, $paramCondi-
cao){

//comando SQL que apaga os dados no banco de dados
$comandoSql = DELETE FROM . $paramTabela . WHERE
. $paramCondicao;
//executa o comando SQL no banco de dados
Programao de Pgina WEB.indd 127 27/8/2007 13:22:24
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
128
$resultado = mysql_db_query ($this->base, $comandoSql, $this-
>conexao);

}
}
?>
A classe acessobanco a classe responsvel pela seleo do banco de dados
e por todo tipo de manipulao e seleo dos dados no banco. Essa classe possui um
mtodo para cada tipo de comando SQL, permitindo exibilidade e organizao dos
comandos SQL em um nico local. Observando os mtodos criados, identicamos
uma palavra que no tinha sido mencionada at o momento, a palavra static, que
tambm faz parte do conceito de orientao a objetos e indica que no necessria
a criao de um objeto em memria para utilizar os mtodos da classe. Isso signica
que no precisamos utilizar o comando new Objeto() para utilizar o mtodo static,
basta apenas informar qual a classe que possui o mtodo static e cham-lo.
Veja, a seguir, como feita a chamada de um mtodo static de uma classe:
NomeDaClasse::NomeDoMetodo();
Nas classes de negcio utilizaremos bastante a chamada de mtodos static.
3 DESENVOLVENDO AS CLASSES DE NEGCIO
Criadas as classes de conexo e acesso ao banco, precisaremos desenvolver
as classes de negcio aquelas que criaro os objetos no sistema para manipular as
informaes ao nal, salvar no banco de dados.
Neste livro-texto visualizaremos as classes de negcio que criaro objetos Mar-
cas, porm existem outras classes na aplicao que possuem a mesma estrutura e
que sero disponibilizadas para os testes e desenvolvimento dos demais recursos da
aplicao.
As classes de negcio so divididas em duas:
1. Classe que cria o objeto Bean esse termo muito utilizado em
Programao de Pgina WEB.indd 128 27/8/2007 13:22:24
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
129
programao orientada a objetos e identica as classes que possuem a es-
trutura das tabelas denidas no banco de dados. Para cada tabela no banco
de dados ser criada uma classe com a estrutura dessa tabela, cujos campos
sero os atributos da classe. Para cada atributo dessa classe existiro dois
mtodos: um que atribui um valor para o atributo e outro que retorna o valor do
atributo. So os chamados mtodos: set e get da orientao a objetos.
2. Classe com a Regra de Negcio do objeto Bean essa classe possuir
os mtodos/funcionalidades de negcio disponveis para o objeto Bean cor-
respondente. Essa classe possuir mtodos static, para cham-los, no ser
necessria a criao do objeto Regra de Negcio.
Vamos analisar o cdigo-fonte das classes Bean e Regra de Negcio, criadas
por meio da tabela: Marcas do banco de dados.
Classe Bean class.marca.php
<?php
class Marca{
//atributos
private $cod;
private $desc;

//mtodo construtor da classe
public function Marca(){
$this->cod = 0;
$this->desc = ;
}
//mtodos da classe
//cod
public function setCod($paramCod){
$this->cod = $paramCod;
}
Programao de Pgina WEB.indd 129 27/8/2007 13:22:24
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
130
public function getCod(){
return $this->cod;
}

//desc
public function setDesc($paramDesc){
$this->desc = $paramDesc;
}

public function getDesc(){
return $this->desc;
}
}
?>
Analisando a classe Bean da tabela: Marcas, identicamos uma estrutura bem
simples possui dois atributos e quatro mtodos. Para cada atributo da classe h um
mtodo: set, que atribui valor ao atributo, e um mtodo: get, que retorna o valor do
atributo. Para todas as tabelas do sistema ser necessrio criar uma classe semel-
hante, lembrando sempre que os atributos da classe so os campos da tabela em
questo.
Vamos agora analisar a classe Regra de Negcio da tabela: Marcas.
Classe Regra de Negcio class.marcaRN.php
<?php
// incluso do arquivo de classe Marca
require_once(class.marca.php);
//inclui o arquivo da classe AcessoBanco
require_once(class.acessobanco.php);
Programao de Pgina WEB.indd 130 27/8/2007 13:22:24
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
131
class MarcaRN{

//retorna uma lista de objetos Marca
public static function getListaObjeto($paramCondicao = ,
$paramOrderBy = marca_desc){
//instancia o objeto AcessoBanco
$acessoBanco = new AcessoBanco();

//seta os valores para passar por parmetro
$tabela = marcas;
$campos = marca_cod, marca_desc;
$condicao = $paramCondicao;

//pega a lista de registros
$resultado = $acessoBanco->selectRegistro($tabela,
$campos, $condicao, $paramOrderBy);
class MarcaRN{

//retorna uma lista de objetos Marca
public static function getListaObjeto($paramCondicao = ,
$paramOrderBy = marca_desc){
//instancia o objeto AcessoBanco
$acessoBanco = new AcessoBanco();

//seta os valores para passar por parmetro
$tabela = marcas;
$campos = marca_cod, marca_desc;
Programao de Pgina WEB.indd 131 27/8/2007 13:22:24
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
132
$condicao = $paramCondicao;

//pega a lista de registros
$resultado = $acessoBanco->selectRegistro($tabela,
$campos, $condicao, $paramOrderBy);

//gera a lista de objetos
$lista = self::geraArrayObjeto($resultado);

//destroi objeto
unset($acessoBanco);
return $lista;
}


//mtodo que recebe um array de registros e retorna um ar-
ray de objetos
private static function geraArrayObjeto($paramLista){

$i = 0;
$marcas = array();

foreach ($paramLista as $indiceArray => $array) {

//instancia o objeto
$marca = new Marca();
$marca->setCod($array[marca_cod]);
$marca->setDesc($array[marca_desc]);

$marcas[$i] = $marca;
Programao de Pgina WEB.indd 132 27/8/2007 13:22:24
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
133
$i++;
}

return $marcas;

}
//retorna um objeto
public static function getObjeto($paramCod){
//instancia o objeto AcessoBanco
$acessoBanco = new AcessoBanco();

//seta os valores para passar por parmetro
$tabela = marcas;
$campos = marca_cod, marca_desc;
$condicao = marca_cod = . $paramCod;

//pega a lista de registros Categoria
$resultado = $acessoBanco->selectRegistro($tabela,
$campos, $condicao);
$marca = ;

//veri!ca se retornou um resultado
if(sizeof($resultado)>0){
$marca = new Marca();
$marca->setCod($resultado[0][marca_cod]);
$marca->setDesc($resultado[0][marca_desc]);
}
Programao de Pgina WEB.indd 133 27/8/2007 13:22:25
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
134
//destroi objeto
unset($acessoBanco);

return $marca;
}


public static function alterObjeto(&$Objeto){
//instancia o objeto AcessoBanco
$acessoBanco = new AcessoBanco();

//seta os valores para passar por parmetro
$tabela = marcas;
$campos = marca_desc = . $Objeto->getDesc() .
;
$condicao = marca_cod = . $Objeto->getCod();
//altera o Banco de Dados
$resultado = $acessoBanco->updateRegistro($tabela,
$campos, $condicao);

//destroi objeto
unset($acessoBanco);
}

//altera o objeto
public static function addObjeto(&$Objeto){
Programao de Pgina WEB.indd 134 27/8/2007 13:22:25
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
135
//instancia o objeto AcessoBanco
$acessoBanco = new AcessoBanco();

//seta os valores para passar por parmetro
$tabela = marcas;
$campos = marca_cod, marca_desc;
$valor = $Objeto->getCod() . , . $Objeto->getDesc()
. ;

//altera o Banco de Dados
$resultado = $acessoBanco->insertRegistro($tabela,
$campos, $valor);

//destroi objeto
unset($acessoBanco);
}
//deleta o objeto
public static function delObjeto(&$Objeto){
//instancia o objeto AcessoBanco
$acessoBanco = new AcessoBanco();

//seta os valores para passar por parmetro
$tabela = marcas;
$condicao = marca_cod = . $Objeto->getCod();

//altera o Banco de Dados
$resultado = $acessoBanco->deleteRegistro($tabela,
$condicao);
Programao de Pgina WEB.indd 135 27/8/2007 13:22:25
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
136
//destroi objeto
unset($acessoBanco);
}

}
?>
A classe regra de negcio a que permitir a manipulao dos registros da
tabela no banco de dados. No caso da classe: MarcaRN, criaremos mtodos espec-
!cos para a manipulao dos dados da tabela: Marcas do banco de dados revenda.
Analisando o cdigo fonte da classe, identi!camos mtodo para cada tipo de
manipulao no banco de dados. H dois mtodos de seleo no banco: o getListaO-
bjeto que ir retornar uma lista de objetos Marca, de acordo com a quantidade de reg-
istros existente no banco de dados e o getObjeto, que retorna um nico objeto Marca.
Esse segundo mtodo utilizado para pegar um registro espec!co da tabela por meio
da chave primria campo que identi!ca o registro no banco de dados.
Como estamos programando orientado a objetos e utilizando um banco de da-
dos relacional para armazenar os dados, necessrio fazer um mapeamento objeto
- relacional para pegar os registros que esto no banco de dados relacional e trans-
form-los em objetos dentro da aplicao. Assim, o mtodo: geraArrayObjeto o re-
sponsvel pela criao da lista de objetos Marcas, com base no resultado da consulta
de seleo executada no banco de dados.
Os demais mtodos da classe referem-se s operaes de manipulao dos
registros no banco de dados. Existe um mtodo para cada operao comando SQL.
Nesses mtodos tambm utilizamos o mapeamento objeto relacional, porm nesse
momento transformaremos os objetos em memria nos registros do banco de dados.
Como todos os mtodos da classe de negcio se referem manipulao e
seleo de registros no banco de dados, a classe: acessobanco, criada no tpico an-
terior, ser a ponte entre o objeto e o banco de dados.
Assim, todas as tabelas do banco de dados revenda tero duas classes
Programao de Pgina WEB.indd 136 27/8/2007 13:22:25
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
137
correspondentes na aplicao: a classe Bean, que possuir a estrutura da tabela, e a
Regra de Negcio, com mtodos que permitiro a seleo e manipulao dos regis-
tros no banco de dados.
Vamos agora criar as classes Bean e Regra de Negcio para as tabelas: Mod-
elos e Automoveis. Verique que as estruturas dessas classes so semelhantes s
classes da tabela: Marcas. A nica diferena entre elas, em relao quantidade de
atributos o mapeamento objeto relacional, que utilizar dados da tabela a que a
classe se refere.
Classe Bean class.modelo.php
<?php
class Modelo{
//atributos
private $cod;
private $desc;
private $marca_cod;

//mtodo construtor da classe
public function Modelo(){
$this->cod = 0;
$this->desc = ;
$this->marca_cod = 0;
}
//mtodos da classe
//cod
public function setCod($paramCod){
$this->cod = $paramCod;
Programao de Pgina WEB.indd 137 27/8/2007 13:22:25
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
138
}

public function getCod(){
return $this->cod;
}

//desc
public function setDesc($paramDesc){
$this->desc = $paramDesc;
}

public function getDesc(){
return $this->desc;
}

//marca_cod
public function setMarcaCod($paramMarcaCod){
$this->marca_cod = $paramMarcaCod;
}

public function getMarcaCod(){
return $this->marca_cod;
}
}
?>
Classe Regra de Negcio: class.modeloRN.php
<?php
// inclusoo do arquivo de classe Modelo
require_once(class.modelo.php);
Programao de Pgina WEB.indd 138 27/8/2007 13:22:25
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
139
//inclui o arquivo da classe AcessoBanco
require_once(class.acessobanco.php);
class ModeloRN{

//retorna uma lista de objetos modelo
public static function getListaObjeto($paramCondicao = ,
$paramOrderBy = mod_desc){
//instancia o objeto AcessoBanco
$acessoBanco = new AcessoBanco();
//seta os valores para passar por parmetro
$tabela = modelos;
$campos = mod_cod, mod_desc, marca_cod;
$condicao = $paramCondicao;
//pega a lista de registros
$resultado = $acessoBanco->selectRegistro($tabela,
$campos, $condicao, $paramOrderBy);

//gera a lista de objetos
$lista = self::geraArrayObjeto($resultado);
//destroi objeto
unset($acessoBanco);
return $lista;

}
Programao de Pgina WEB.indd 139 27/8/2007 13:22:25
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
140
//mtodo que recebe um array de registros e retorna um ar-
ray de objetos
private static function geraArrayObjeto($paramLista){

$i = 0;
$modelos = array();

foreach ($paramLista as $indiceArray => $array) {

//instancia o objeto
$modelo = new modelo();
$modelo->setCod($array[mod_cod]);
$modelo->setDesc($array[mod_desc]);
$modelo->setMarcaCod($array[marca_cod]);

$modelos[$i] = $modelo;
$i++;
}

return $modelos;

}
//retorna um objeto
public static function getObjeto($paramCod){
//instancia o objeto AcessoBanco
$acessoBanco = new AcessoBanco();
//seta os valores para passar por parmetro
$tabela = modelos;
Programao de Pgina WEB.indd 140 27/8/2007 13:22:25
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
141
$campos = mod_cod, mod_desc,marca_cod;
$condicao = mod_cod = . $paramCod;

//pega a lista de registros Categoria
$resultado = $acessoBanco->selectRegistro($tabela,
$campos, $condicao);

$modelo = ;

//veri!ca se retornou um resultado
if(sizeof($resultado)>0){
$modelo = new modelo();
$modelo->setCod($resultado[0][mod_cod]);
$modelo->setDesc($resultado[0][mod_desc]);
$modelo->setMarcaCod($resultado[0][marca_
cod]);
}

//destroi objeto
unset($acessoBanco);
return $modelo;
}


public static function alterObjeto(&$Objeto){
//instancia o objeto AcessoBanco
$acessoBanco = new AcessoBanco();
//seta os valores para passar por parmetro
Programao de Pgina WEB.indd 141 27/8/2007 13:22:25
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
142
$tabela = modelos;
$campos = mod_desc = . $Objeto->getDesc() . .;
$campos = marca_cod = . $Objeto->getMarcaCod() .
;
$condicao = mod_cod = . $Objeto->getCod();
//altera o Banco de Dados
$resultado = $acessoBanco->updateRegistro($tabela,
$campos, $condicao);

//destroi objeto
unset($acessoBanco);
}

//altera o objeto
public static function addObjeto(&$Objeto){
//instancia o objeto AcessoBanco
$acessoBanco = new AcessoBanco();

//seta os valores para passar por parmetro
$tabela = modelos;
$campos = mod_cod, mod_desc,marca_cod;
$valor = $Objeto->getCod() . , . $Objeto->getDesc()
. , . $Objeto->getMarcaCod() . ;
//altera o Banco de Dados
$resultado = $acessoBanco->insertRegistro($tabela,
$campos, $valor);
//destroi objeto
Programao de Pgina WEB.indd 142 27/8/2007 13:22:25
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
143
unset($acessoBanco);
}
//deleta o objeto
public static function delObjeto(&$Objeto){
//instancia o objeto AcessoBanco
$acessoBanco = new AcessoBanco();

//seta os valores para passar por parmetro
$tabela = modelos;
$condicao = mod_cod = . $Objeto->getCod();

//altera o Banco de Dados
$resultado = $acessoBanco->deleteRegistro($tabela,
$condicao);

//destroi objeto
unset($acessoBanco);
}

}
?>
Classe Bean: class.automovel.php
<?php
class Automovel{
Programao de Pgina WEB.indd 143 27/8/2007 13:22:25
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
144
//atributos
private $placa;
private $mod_cod;
private $ano;
private $preco;
private $cor;
private $combustivel;
private $km;
private $arcondicionado;
private $vidroeletrico;
private $vidroverde;
private $airbag;
private $travaeletrica;
private $alarme;
private $desembacador;
private $rodaliga;
private $volantehidraulico;
private $arquente;
private $abs;
private $cambioaut;
private $cdplayer;
private $isu!lm;
private $limpadortraseiro;
private $outros;
private $vendido;
//mtodo construtor da classe
public function Automovel(){
$this->placa = ;
$this->mod_cod = 0;
$this->ano = 0;
$this->preco = 0;
Programao de Pgina WEB.indd 144 27/8/2007 13:22:25
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
145
$this->cor = ;
$this->combustivel = ;
$this->km = 0;
$this->arcondicionado = 0;
$this->vidroeletrico = 0;
$this->vidroverde = 0;
$this->airbag = 0;
$this->travaeletrica = 0;
$this->alarme = 0;
$this->desembacador = 0;
$this->rodaliga = 0;
$this->volantehidraulico = 0;
$this->arquente = 0;
$this->abs = 0;
$this->cambioaut = 0;
$this->cdplayer = 0;
$this->isu!lm = 0;
$this->limpadortraseiro = 0;
$this->outros = 0;
$this->vendido = 0;
}
//mtodos da classe
//placa
public function setPlaca($paramPlaca){
$this->placa = $paramPlaca;
}
public function getPlaca(){
return $this->placa;
}
Programao de Pgina WEB.indd 145 27/8/2007 13:22:25
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
146
}
//mod_cod
public function setModCod($paramModCod){
$this->mod_cod = $paramModCod;
}

public function getModCod(){
return $this->mod_cod;
}

//ano
public function setAno($paramAno){
$this->ano = $paramAno;
}

public function getAno(){
return $this->ano;
}

//preco
public function setPreco($paramPreco){
$this->preco = $paramPreco;
}

public function getPreco(){
return $this->preco;
}
//cor
public function setCor($paramCor){
$this->cor = $paramCor;
Programao de Pgina WEB.indd 146 27/8/2007 13:22:25
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
147
}
public function getCor(){
return $this->cor;
}

//combustivel
public function setCombustivel($paramCombustivel){
$this->combustivel = $paramCombustivel;
}
public function getCombustivel(){
return $this->combustivel;
}

//km
public function setKm($paramKm){
$this->km = $paramKm;
}
public function getKm(){
return $this->km;
}

//arcondicionado
public function setArCondicionado($paramArCondicionado){
$this->arcondicionado = $paramArCondicionado;
}
public function getArCondicionado(){
return $this->arcondicionado;
}
Programao de Pgina WEB.indd 147 27/8/2007 13:22:26
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
148
//vidroeletrico
public function setVidroEletrico($paramVidroEletrico){
$this->vidroeletrico = $paramVidroEletrico;
}

public function getVidroEletrico(){
return $this->vidroeletrico;
}

//vidroverde
public function setVidroVerde($paramVidroVerde){
$this->vidroverde = $paramVidroVerde;
}

public function getVidroVerde(){
return $this->vidroverde;
}

//airbag
public function setAirBag($paramAirBag){
$this->airbag = $paramAirBag;
}

public function getAirBag(){
return $this->airbag;
}
//travaeletrica
public function setTravaEletrica($paramTravaEletrica){
$this->travaeletrica = $paramTravaEletrica;
}
Programao de Pgina WEB.indd 148 27/8/2007 13:22:26
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
149
public function getTravaEletrica(){
return $this->travaeletrica;
}

//alarme
public function setAlarme($paramAlarme){
$this->alarme = $paramAlarme;
}

public function getAlarme(){
return $this->alarme;
}

//desembacador
public function setDesembacador($paramDesembacador){
$this->desembacador = $paramDesembacador;
}

public function getDesembacador(){
return $this->desembacador;
}

//rodaliga
public function setRodaLiga($paramRodaLiga){
$this->rodaliga = $paramRodaLiga;
}
public function getRodaLiga(){
return $this->rodaliga;
}
//volantehidraulico
Programao de Pgina WEB.indd 149 27/8/2007 13:22:26
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
150
public function setVolanteHidraulico($paramVolanteHidrauli
co){
$this->volantehidraulico = $paramVolanteHidraulico;
}

public function getVolanteHidraulico(){
return $this->volantehidraulico;
}

//arquente
public function setArQuente($paramArQuente){
$this->arquente = $paramArQuente;
}

public function getArQuente(){
return $this->arquente;
}

//abs
public function setAbs($paramAbs){
$this->abs = $paramAbs;
}
public function getAbs(){
return $this->abs;
}

//cambioaut
public function setCambioAut($paramCambioAut){
$this->cambioaut = $paramCambioAut;
}
Programao de Pgina WEB.indd 150 27/8/2007 13:22:26
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
151
public function getCambioAut(){
return $this->cambioaut;
}

//cdplayer
public function setCdPlayer($paramCdPlayer){
$this->cdplayer = $paramCdPlayer;
}

public function getCdPlayer(){
return $this->cdplayer;
}

//isu!lm
public function setIsu!lm($paramIsu!lm){
$this->isu!lm = $paramIsu!lm;
}

public function getIsu!lm(){
return $this->isu!lm;
}
//limpadortraseiro
public function setLimpadorTraseiro($paramLimpadorTraseiro
){
$this->limpadortraseiro = $paramLimpadorTraseiro;
}

public function getLimpadorTraseiro(){
return $this->limpadortraseiro;
}
Programao de Pgina WEB.indd 151 27/8/2007 13:22:26
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
152
//outros
public function setOutros($paramOutros){
$this->outros = $paramOutros;
}

public function getOutros(){
return $this->outros;
}

//vendido
public function setVendido($paramVendido){
$this->vendido = $paramVendido;
}

public function getVendido(){
return $this->vendido;
}
}
?>
Classe Regra de Negcio: class.automovelRN.php
<?php
// inclusoo do arquivo de classe Automovel
require_once(class.automovel.php);
//inclui o arquivo da classe AcessoBanco
require_once(class.acessobanco.php);
class AutomovelRN{
//retorna uma lista de objetos automovel
Programao de Pgina WEB.indd 152 27/8/2007 13:22:26
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
153
public static function getListaObjeto($paramCondicao = ,
$paramOrderBy = aut_placa){
//instancia o objeto AcessoBanco
$acessoBanco = new AcessoBanco();

//seta os valores para passar por parmetro
$tabela = automoveis;
$campos = aut_placa,mod_cod,aut_ano,aut_preco,aut_
cor,aut_combustivel,aut_km,aut_arcondicionado,;
$campos .= aut_vidroeletrico,aut_vidroverde,aut_
airbag,aut_travaeletrica,aut_alarme,aut_desembacador,;
$campos .= aut_rodaliga,aut_volantehidraulico,aut_
arquente,aut_abs,aut_cambioaut,aut_cdplayer,aut_isu!lm,;
$campos .= aut_limpadortraseiro,aut_outros,aut_ven-
dido;
$condicao = $paramCondicao;

//pega a lista de registros
$resultado = $acessoBanco->selectRegistro($tabela,
$campos, $condicao, $paramOrderBy);
//gera a lista de objetos
$lista = self::geraArrayObjeto($resultado);
//destroi objeto
unset($acessoBanco);

return $lista;
}
Programao de Pgina WEB.indd 153 27/8/2007 13:22:26
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
154
//mtodo que recebe um array de registros e retorna um ar-
ray de objetos
private static function geraArrayObjeto($paramLista){

$i = 0;
$automovels = array();

foreach ($paramLista as $indiceArray => $array) {

//instancia o objeto
$automovel = new automovel();
$automovel->setPlaca($array[aut_placa]);
$automovel->setModCod($array[mod_cod]);
$automovel->setAno($array[aut_ano]);
$automovel->setPreco($array[aut_preco]);
$automovel->setCor($array[aut_cor]);
$automovel->setCombustivel($array[aut_combus-
tivel]);
$automovel->setKm($array[aut_km]);
$automovel->setArCondicionado($array[aut_ar-
condicionado]);
$automovel->setVidroEletrico($array[aut_vidro-
eletrico]);
$automovel->setVidroVerde($array[aut_vidrov-
erde]);
$automovel->setAirBag($array[aut_airbag]);
$automovel->setTravaEletrica($array[aut_tra-
vaeletrica]);
$automovel->setAlarme($array[aut_alarme]);
$automovel-
>setDesembacador($array[aut_desembacador]);
$automovel->setRodaLiga($array[aut_rodaliga]);
Programao de Pgina WEB.indd 154 27/8/2007 13:22:26
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
155
$automovel->setVolanteHidraulico($array[aut_
volantehidraulico]);
$automovel->setArQuente($array[aut_arquente]);
$automovel->setAbs($array[aut_abs]);
$automovel->setCambioAut($array[aut_cambio-
aut]);
$automovel->setCdPlayer($array[aut_cdplayer]);
$automovel->setIsu!lm($array[aut_isu!lm]);
$automovel->setLimpadorTraseiro($array[aut_
limpadortraseiro]);
$automovel->setOutros($array[aut_outros]);
$automovel->setVendido($array[aut_vendido]);
$automovels[$i] = $automovel;
$i++;
}

return $automovels;
}


//retorna um objeto
public static function getObjeto($paramCod){
//instancia o objeto AcessoBanco
$acessoBanco = new AcessoBanco();
//seta os valores para passar por parmetro
$tabela = automoveis;
$campos
Programao de Pgina WEB.indd 155 27/8/2007 13:22:26
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
156
aut_placa,mod_cod,aut_ano,aut_preco,aut_cor,aut_
combustivel,aut_km,aut_arcondicionado,;
$campos .= aut_vidroeletrico,aut_vidroverde,aut_
airbag,aut_travaeletrica,aut_alarme,aut_desembacador,;
$campos .= aut_rodaliga,aut_volantehidraulico,aut_
arquente,aut_abs,aut_cambioaut,aut_cdplayer,aut_isulm,;
$campos .= aut_limpadortraseiro,aut_outros,aut_ven-
dido;
$condicao = aut_placa = . $paramCod;

//pega a lista de registros Categoria
$resultado = $acessoBanco->selectRegistro($tabela,
$campos, $condicao);

$automovel = ;

//verica se retornou um resultado
if(sizeof($resultado)>0){
$automovel = new automovel();
$automovel->setPlaca($resultado[0][aut_
placa]);
$automovel->setModCod($resultado[0][mod_cod]);
$automovel->setAno($resultado[0][aut_ano]);
$automovel->setPreco($resultado[0][aut_
preco]);
$automovel->setCor($resultado[0][aut_cor]);
$automovel-
>setCombustivel($resultado[0][aut_combustivel]);
$automovel->setKm($resultado[0][aut_km]);
$automovel-
>setArCondicionado($resultado[0][aut_arcondicionado]);
Programao de Pgina WEB.indd 156 27/8/2007 13:22:26
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
157
$automovel->setVidroEletrico($resultado[0][aut
_vidroeletrico]);
$automovel->setVidroVerde($resultado[0][aut_
vidroverde]);
$automovel->setAirBag($resultado[0][aut_air-
bag]);
$automovel->setTravaEletrica($resultado[0][aut
_travaeletrica]);
$automovel->setAlarme($resultado[0][aut_
alarme]);
$automovel->setDesembacador($resultado[0][aut_
desembacador]);
$automovel->setRodaLiga($resultado[0][aut_ro-
daliga]);
$automovel->setVolanteHidraulico($resultado[0][
aut_volantehidraulico]);
$automovel->setArQuente($resultado[0][aut_ar-
quente]);
$automovel->setAbs($resultado[0][aut_abs]);
$automovel->setCambioAut($resultado[0][aut_
cambioaut]);
$automovel->setCdPlayer($resultado[0][aut_cd-
player]);
$automovel->setIsu!lm($resultado[0][aut_isu-
!lm]);
$automovel-
->setLimpadorTraseiro($resultado[0][aut_limpadortraseiro]);
$automovel->setOutros($resultado[0][aut_out-
ros]);
$automovel->setVendido($resultado[0][aut_ven-
dido]);
}
Programao de Pgina WEB.indd 157 27/8/2007 13:22:26
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
158
//destroi objeto
unset($acessoBanco);

return $automovel;
}

}
?>
4 DESENVOLVENDO A INTERFACE COM O USURIO
Criadas as classes Bean e Regra de Negcio, podemos desenvolver as pgi-
nas PHP que possuiro a interface da aplicao com o usurio. Essas pginas uti-
lizaro as classes Bean e Regra de Negcio para trabalhar com os objetos dentro da
aplicao. Desenvolveremos quatro pginas de interface:
1. index.php pgina principal da aplicao que permitir ao usurio selecio-
nar uma Marca, um Modelo relacionado Marca selecionada e veri!car a lista
de carros relacionadas ao Modelo para consulta.
2. admin/marca_lst.php pgina da administrao que permitir ao administra-
dor da aplicao visualizar todos os registros armazenados na tabela: Marcas
do banco de dados.
3. admin/marca_frm.php pgina com o formulrio que permitir o cadastro e
alterao dos registros da tabela: Marcas.
4. admin/marca_action.php pgina que ir alterar os dados do objeto de acor-
do com a ao feita no formulrio: cadastro, alterao ou remoo e chamar
a classe Regra de Negcio para efetivar a alterao dos dados do objeto no
banco de dados.
Seguem os cdigos-fonte de cada pgina:
Programao de Pgina WEB.indd 158 27/8/2007 13:22:26
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
159
Pgina: index.php
<html>
<head>
<title>Revenda de Automveis</title>
<meta http-equiv=Content-Type content=text/html; charset=iso-
8859-1>
</head>
<body>
<?
//inclui as classes
require_once(classes/class.marcaRN.php);
require_once(classes/class.modeloRN.php);
require_once(classes/class.automovelRN.php);
?>
<form name=form1 method=post>
<table width=100% border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=20% valign=top>
<!-- seleo de marcas e modelos -->
Marcas:
<select name=marca_cod onChange=document.
form1.submit();>
<option value=0>Selecione a Marca</op-
tion>
<?
$marca_cod=0;
if(isset($_POST[marca_cod])){
$marca_cod = $_POST[marca_cod];
}

$lista = MarcaRN::getListaObjeto(,);
Programao de Pgina WEB.indd 159 27/8/2007 13:22:26
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
160
foreach($lista as $oMarca){
?>
<option value=<?=$oMarca->getCod()?>
<? ($marca_cod==$oMarca->getCod())?print selected:print ;
?> ><?=$oMarca->getDesc()?></option>
<?
}
?>
</select>
<br><br>
Modelos:
<select name=mod_cod onChange=document.form1.
submit();>
<option value=0>Selecione o Modelo</op-
tion>
<?
$condicao = ;
if(isset($_POST[marca_cod])){
$condicao = marca_cod = . $_
POST[marca_cod];
}

$mod_cod=0;
if(isset($_POST[mod_cod])){
$mod_cod = $_POST[mod_cod];
}
print $condicao . <br>;

$lista = ModeloRN::getListaObjeto($condicao
,);
foreach($lista as $oModelo){
Programao de Pgina WEB.indd 160 27/8/2007 13:22:27
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
161
?>
<option value=<?=$oModelo->get-
Cod()?> <? ($mod_cod==$oModelo->getCod())?print selected:
print ; ?> ><?=$oModelo->getDesc()?></option>
<?
}
?>
</select>
</td>
<td width=5%>&nbsp;</td>
<td>
<!-- lista de automtveis -->
<table width=100% align=center border=1
bordercolor=#000000 cellpadding=3 cellspacing=0>
<tr bgcolor=#EAEAEA>
<td>Placa</td>
<td>Ano</td>
<td>Preco</td>
</tr>
<?
$condicao = mod_cod = . $mod_cod;
$lista = AutomovelRN::getListaObjeto($condi
cao,);
foreach($lista as $oAutomovel){
?>
<tr>
<td><?=$oAutomovel->getPlaca()?></td>
<td><?=$oAutomovel->getAno()?></td>
<td><?=$oAutomovel->getPreco()?></td>
</tr>
<?
Programao de Pgina WEB.indd 161 27/8/2007 13:22:27
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
162
}//foreach
?>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>
Pgina: admin/marca_lst.php
<?
/* Indica que o arquivo no deve !car em cache (fora o seu re-
processamento) */
require_once(classes/class.marcaRN.php);
?>
<input name=btnNovo type=button value=Nova Marca
onClick=location.href=marca_frm.php /><br><br>
<table width=100% align=center border=1 bordercol-
or=#000000 cellpadding=3 cellspacing=0>
<tr bgcolor=#EAEAEA>
<td>Cdigo</td>
<td>Descrio</td>
<td>&nbsp;</td>
</tr>
<?
$lista = MarcaRN::getListaObjeto(,);
foreach($lista as $oMarca){
Programao de Pgina WEB.indd 162 27/8/2007 13:22:27
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
163
?>
<tr>
<td><?=$oMarca->getCod()?></td>
<td><?=$oMarca->getDesc()?></td>
<td><input name=btnAlterar type=button
value=Alterar onClick=location.href=marca_frm.
php?cod=<?=$oMarca->getCod()?> /></td>
</tr>
<?
}//foreach
?>
</table>
<?
//Libera objetos
unset($lista);
?>
Pgina: admin/marca_frm.php
<?
require_once(classes/class.marcaRN.php);
// veri!ca se cadastro ou alterao
if (isset($_GET[cod])){
// alterao
$cod = $_GET[cod];
$oMarca = MarcaRN::getObjeto($cod);
} else {
// cadastro
$cod = 0;
$oMarca = new Marca();
}
Programao de Pgina WEB.indd 163 27/8/2007 13:22:27
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
164
$desc = $oMarca->getDesc();
//Libera objetos
unset($oMarca);

?>
<form method=post name=frm action=marca_action.php>
<table width=95% align=center border=0 cellpad-
ding=0 cellspacing=0>
<tr>
<td width=30% align=right>Cdigo: &nbsp;</
td>
<td><input name=cod type=text size=10
maxlength=5 value=<?=$cod?> /></td>
</tr>
<tr>
<td width=30% align=right>Descrio: &nbsp;</
td>
<td><input name=desc type=text size=40
maxlength=100 value=<?=$desc?> /></td>
</tr>
<tr>
<td width=30% align=right>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td width=30%>&nbsp;</td>
<td>
<input name=btnSalvar type=Submit value=Salvar>
<input name=btnCancelar type=button
value=Cancelar onClick=location.href=marca_lst.php>
<? if($cod > 0) { ?>
Programao de Pgina WEB.indd 164 27/8/2007 13:22:27
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
165
<input name=btnApagar type=Submit value=Apagar />
<? } ?>
</td>
</tr>
</table>
</form>
Pgina: admin/marca_action.php
<?
require_once(classes/class.marcaRN.php);
//Carrega ou cria objeto
if (isset($_POST[cod])){
$cod = $_POST[cod];
$oMarca = MarcaRN::getObjeto($cod);
}
//variavel booleana que ir veri!car se um novo registro
$ehNovoRegistro = false;
//caso no exista o objeto cria um novo objeto pois um novo
registro
if(empty($oMarca)){
$oMarca = new Marca();
$ehNovoRegistro = true;
}
//Veri!ca se foi clicado no boto apagar
if ((isset($_POST[btnApagar])) && ($_POST[btnApagar] ==
Apagar)){
if ($cod > 0){
MarcaRN::delObjeto($oMarca);
Programao de Pgina WEB.indd 165 27/8/2007 13:22:27
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
166
}
}else{
$oMarca->setCod($_POST[cod]);
$oMarca->setDesc($_POST[desc]);

if ($ehNovoRegistro){
// adiciona o registro
MarcaRN::addObjeto($oMarca);
} else {
//altera o registro
MarcaRN::alterObjeto($oMarca);
}
}
unset($oMarca);
header(location:marca_lst.php)
?>
Para testar as pginas da aplicao, necessrio incluir alguns registros nas
tabelas: Marcas, Modelos e Automveis no banco de dados. Os registros da tabela:
Marcas podero ser inseridos por meio das telas da administrao.
A partir de agora, voc poder dar continuidade ao desenvolvimento da aplica-
o. Para isso, basta criar as classes Bean e Regra de Negcio para as tabelas que
faltam. Alm disso, voc poder melhorar a administrao da aplicao, incluindo uma
tela de autenticao para os funcionrios da revenda. Se voc tiver dvidas de como
desenvolver esse recurso, retorne ao captulo 8 do livro-texto e verique o exemplo
que desenvolvemos.
Ainda na administrao podero ser desenvolvidas as telas de manuteno
das outras tabelas do banco de dados, isso dar bastante !exibilidade para os man-
tenedores da aplicao.
Programao de Pgina WEB.indd 166 27/8/2007 13:22:27
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
167
Sntese
Nesta aula estudamos os passos para o desenvolvimento de uma aplicao
para Internet, utilizando PHP e banco de dados MySQL.
CONCLUSO
Atualmente, quase impossvel que uma empresa no possua uma arquitetura
cliente-servidor e sistemas disponveis para acesso por meio de um navegador de In-
ternet. Esse fato tem se tornado cada vez mais constante, pois manter as aplicaes
agrupadas em um local torna-se mais rentvel para as empresas, que economizaro
tempo e recursos com manuteno em aplicaes instaladas em diversas mquinas.
Isso sem contar os custos com licenas que os sistemas desktop podem acrescentar
ao oramento das empresas.
Tambm fato que as aplicaes disponveis na Internet tm evoludo muito e
em grande escala. As empresas que fornecem aplicaes e softwares diversos pos-
suem cada vez mais demanda para o pro!ssional que est atualizado com este tipo
de tecnologia.
Portanto, imprescindvel que os pro!ssionais de informtica, tenham conhe-
cimento bsico da programao para a Internet. Este conhecimento ir possibilitar
ao pro!ssional desenvolver aplicaes dinmicas e interativas e disponibiliz-las na
Internet.
Assim, esse mdulo teve como objetivo principal introduzir os conhecimentos
bsicos sobre programao de aplicaes para a Internet, utilizando a linguagem
PHP.
Programao de Pgina WEB.indd 167 27/8/2007 13:22:27
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
168
Respostas dos Exerccios
Aula 1
1) C
2) D
3) C
4) D
5) A, C
Aula 2
1) C
2) A
3) B
4) A,C
5) B,D
Aula 3
1) C
2) D
3) C
4) C
5) B
Aula 4
1) A,B,C
2) C
3) A
4) C
5) C
Programao de Pgina WEB.indd 168 27/8/2007 13:22:27
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
169
Aula 5
1) A,C,D
2) C
3) B
4) A,C
5) C,D
Aula 6
1) A,C,D
2) B
3) B
4) C
5) A,B,C
Aula 7
1) B
2) D
3)
class.operacao.php
<?
// declara a classe
// o objeto que for criado por meio desta classe assumir a visi-
bilidade e nome
// da classe
class Operacao{
//declara um atributo
private $resultado = 0;
// declara o mtodo adio
// o mtodo recebe dois nmeros para executar o
clculo e
// retornar o resultado
Programao de Pgina WEB.indd 169 27/8/2007 13:22:27
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
170
Public function adicao($numero1, $numero2){
$this->resultado = $numero1 + $numero2;
return $this->resultado;
}

// declara o mtodo subtrao
Public function subtracao($numero1, $numero2){
$this->resultado = $numero1 - $numero2;
return $this->resultado;
}
// declara o mtodo multiplicao
Public function multiplicacao($numero1, $nume-
ro2){
$this->resultado = $numero1 * $numero2;
return $this->resultado;
}
// declara o mtodo diviso
Public function divisao($numero1, $numero2){
// faz o tramento para no permitir diviso
por zero
if($numero2>0){
$this->resultado = $numero1 / $nume-
ro2;
}
return $this->resultado;
}
Programao de Pgina WEB.indd 170 27/8/2007 13:22:27
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
171
}
?>
exemplo29.php
<HTML>
<HEAD>
<TITLE>Exemplo 29</TITLE>
</HEAD>
<BODY>
<!--
Este um comentrio em HTML!
Quando queremos que o formulrio envie as variveis para a mesma
pgina, no especicamos o atributo: action do comando form
-->
<form name=form1 method=post>
Nmero 1: <input type=text name=numero1><br>
Nmero 2: <input type=text name=numero2><br>
<input type=submit name=btnEnviar value=Calcular
Soma>
</form>
<?
//verica se existe a varivel de navegador numero1
if(isset($_POST[numero1])){
//cria novas variveis com base nas variveis de navegador
$num1 = $_POST[numero1];
$num2 = $_POST[numero2];
//verica se as variveis possuem valor diferente de vazio
if(!empty($num1) && !empty($num2)){
Programao de Pgina WEB.indd 171 27/8/2007 13:22:27
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
172
//inclui o arquivo que possui a estrutura da classe para
permitir a criao
//do objeto
require_once(class.operacao.php);

//cria o objeto
$objOperacao = new Operacao();

// a partir de agora a varivel: $objOperacao um objeto
que possui a estrutura
// da classe operao
// vamos ento chamar o mtodo adicao e obter o resultado
da soma e mostrar
// na tela
print $objOperacao->adicao($num1,$num2) . <br>;


// como j no precisamos do objeto: $objOperacao, vamos
destru-lo
unset($objOperacao);
}
}
?>
</BODY>
</HTML>
Aula 8
1) C
2) D
3) D
4) D
5) B
Programao de Pgina WEB.indd 172 27/8/2007 13:22:27
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
173
Aula 9
1)
<HTML>
<HEAD>
<TITLE>Exemplo 33</TITLE>
</HEAD>
<BODY>
<?
//conecta com o banco de dados MySQL
$conexao = mysql_connect(localhost, root, vertrigo);
//seleciona o banco de dados revenda
mysql_db_query(revenda,$conexao);
//apaga todos os registros da tabela marcas
mysql_query(DELETE FROM marcas);
//insere os registros na tabela marcas:
mysql_query(INSERT INTO marcas VALUES(1,Citroen));
mysql_query(INSERT INTO marcas VALUES(2,Audi));
mysql_query(INSERT INTO marcas VALUES(3,Renault));
//seleciona e mostra os registros
$consulta = SELECT marca_cod, marca_desc FROM marcas;
$resultado = mysql_query($consulta, $conexao);
while ($linha = mysql_fetch_row($resultado)) {
print Cdigo: . $linha[0] . <BR>;
print Descrio: . $linha[1] . <BR><BR>;
}
Programao de Pgina WEB.indd 173 27/8/2007 13:22:28
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
174
print Alterao de Registro<br><br>;
//altera o registro 3 da tabela
mysql_query(UPDATE marcas SET marca_desc = Pegeout WHERE mar-
ca_cod = 3);
print Mostra os registros novamente<br><br>;
//seleciona e mostra os registros
$consulta = SELECT marca_cod, marca_desc FROM marcas;
$resultado = mysql_query($consulta, $conexao);
while ($linha = mysql_fetch_row($resultado)) {
print Cdigo: . $linha[0] . <BR>;
print Descrio: . $linha[1] . <BR><BR>;
}
?>
</BODY>
</HTML>
Programao de Pgina WEB.indd 174 27/8/2007 13:22:28
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
175
REFERNCIAS BIBLIOGRFICAS
1. CONVERSE, Tim; PARK, Joyce. PHP A Bblia. So Paulo: Campus / Elsevier,
2003.
2. WIKIPDIA, a enciclopdia livre. Artigos Eletrnicos. Disponvel em: http://
pt.wikipedia.org/
3. Internet World Stats. Disponvel em: http://www.internetworldstats.com/
Programao de Pgina WEB.indd 175 27/8/2007 13:22:28
Programao de Pgina WEB - PHP
SOCIESC - Sociedade Educacional de Santa Catarina
176
Copyright Tupy Virtual 2007
Nenhuma parte desta publicao pode ser reproduzida por qualquer meio sem a prvia autorizao desta instituio.
Autor: Rosemary Francisco
Programao de Pgia WEB - PHP: Material didtico / Rosemary Francisco
Design institucional: Thiago Vedoi de Lima; Cristiane de Oliveira - Joinville: Tupy Virtual, 2007
Ficha catalogrca elaborada pela Biblioteca Universitria Tupy Virtual
Crditos
SOCIESC Sociedade Educacional de Santa Catarina
Tupy Virtual Ensino a Distncia
Rua Albano Schmidt, 3333 Joinville SC 89206-001
Fone: (47)3461-0166
E-mail: ead@sociesc.org.br
Site: www.sociesc.org.br/portalead
Diretor Geral
Sandro Murilo Santos
Diretor de Administrao
Vicente Otvio Martins de Resende
Diretor de Ensino, Pesquisa e Extenso
Roque Antonio Mattei
Diretor do Instituto Superior Tupy
Wesley Masterson Belo de Abreu
Diretor da Escola Tcnica Tupy
Luiz Fernando Bublitz
Coordenador da Escola Tcnica Tupy
Alexssandro Fossile
Alan Marcos Blenke
Coordenador do Curso
Juliano Prim
Coordenador de Projetos
Jos Luiz Schmitt
Revisora Pedaggica
Ndia Ftima de Oliveira
EQUIPE TUPY VIRTUAL
Raimundo Nonato Gonalves Robert
Wilson Jos Mafra
Thiago Vedoi de Lima
Cristiane Oliveira
Design Grco
Thiago Vedoi de Lima
Equipe Didtico-Pedagcia
Rosemary Francisco
EDIO MATERIAL DIDTICO
Professor Conteudista
Rosemary Francisco
Design Institucional
Thiago Vedoi de Lima
Cristiane Oliveira
Ilustrao Capa
Thiago Vedoi de Lima
Projeto Grco
Equipe Tupy Virtual
Reviso Ortogrca
Ndia Ftima de Oliveira
Programao de Pgina WEB.indd 176 27/8/2007 13:22:28

Você também pode gostar