Você está na página 1de 176

Programao de Pgina WEB - PHP

Edio n1 - 2007

ROSEMARY FRANCISCO
Apoio

Gesto e Execuo

Contedo e Tecnologia

Programao de Pgina WEB - PHP

Apresentao

Este livro didtico contm a disciplina de Programao Pgina WEB - PHP.

O contedo desse material ir disponibilizar aos alunos do EAD os conceitos

fundamentais do Sistema Gerenciador de Banco de Dados, bem como as principais


tcnicas que so utilizadas para modelagem, criao e manuteno de um banco de
dados.

Para sua melhor compreenso, o livro est estruturado em duas partes. Na

primeira, so apresentados os conceitos fundamentais do banco de dados, que proporcionar um primeiro contato com essa tecnologia. Tambm na primeira parte, demonstrado o funcionamento do Modelo Relacional, que a base para a tecnologia de
banco de dados. A segunda parte engloba as tcnicas para a definio de um projeto
de banco de dados: normalizao, modelagem e as dependncias funcionais e, ainda,
uma anlise mais ampla sobre o funcionamento e os recursos disponibilizados pelos
Sistemas Gerenciadores de Banco de Dados.

Lembre-se de que a sua passagem por esta disciplina ser tambm acompa-

nhada pelo Sistema de Ensino Tupy Virtual, seja por correio postal, fax, telefone, email ou Ambiente Virtual de Aprendizagem. Sempre entre em contato conosco quando
surgir alguma dvida ou dificuldade.

Toda a equipe ter a maior alegria em atend-lo, pois a sua aquisio de co-

nhecimento nessa jornada o nosso maior objetivo.


Acredite no seu sucesso e bons momentos de estudo!

Equipe Tupy Virtual.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 profissionais de informtica,


principalmente aos desenvolvedores de aplicaes, o conhecimento de uma linguagem que permita construir e disponibilizar diversas aplicaes para a Internet. A Internet 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 final, 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

desafio!
Professora Rosemary Francisco

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

Cronograma de Estudos

Acompanhe no cronograma abaixo os contedos das aulas, e atualize as pos-

sveis datas de realizao de aprendizagem e avaliaes.


Semanas

Carga Horria
2

2
2
2
2

3
3
2
2
4
4
2
2
1
2
1
2
2

Unidade
Data/Avaliao
Viso geral do gerenciamento
_/_ a _/_
de bancos de dados
Arquitetura de sistemas de ban_/_ a _/_
cos de dados
Introduo aos bancos de da_/_ a _/_
dos relacionais
Uma introduo SQL
_/_ a _/_
Introduo ao Modelo Relacio_/_ a _/_
nal
lgebra Relacional
_/_ a _/_
Clculo relacional
_/_ a _/_
Integridade
_/_ a _/_
Dependncias funcionais
_/_ a _/_
Normalizao
_/_ a _/_
Modelagem semntica
_/_ a _/_
Tabelas
_/_ a _/_
ndices
_/_ a _/_
Consultas de Seleo
_/_ a _/_
Consultas de Ao
_/_ a _/_
Vises Views
_/_ a _/_
Procedimentos Armazenados
_/_ a _/_
Store Procedures
Disparadores Triggers
_/_ a _/_

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

Plano de Estudos

Ementa

Conceito de Sistemas Gerenciadores de Banco de Dados. Componentes. Mo-

delos de SGBD. Criao de um banco de dados. Projetando e criando tabelas. Gerenciamento do banco de dados. Consultando o banco de dados. Criando relatrios. Otimizao do banco de dados e segurana do banco de dados. SQL. Banco de dados
distribudos. Principais produtos SGBD do mercado. Banco de dados e o paradigma
de objetos.
Objetivos da Disciplina

Geral
Compreender os sistemas de bancos de dados.

Especficos
- Introduzir os conceitos fundamentais dos sistemas de bancos de dados.
- Relacionar o funcionamento do Modelo Relacional e os objetos que compem o Modelo Relacional.
- Demonstrar as melhores prticas para normalizao e modelagem dos dados em um Projeto de Banco de Dados.
- Ampliar os conhecimentos e a aplicao da linguagem de banco de dados
SQL
- Ampliar os conhecimentos sobre o funcionamento e os recursos disponveis
pelos Sistemas Gerenciadores de Banco de Dados.

Carga Horria: 40 horas/aula.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 final desta aula voc dever ser capaz de:

Identificar o que uma arquitetura cliente-servidor;


Analisar as vantagens da utilizao da linguagem PHP
para programao para Internet;
Identificar 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.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 Maro/2007 essa mesma pesquisa foi realizada e as estatsticas apontaram que 16,9%
da populao tinham acesso Internet. Isso significa 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 institucionais, 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 figura 1 demonstra o funcionamento


da arquitetura cliente-servidor.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

Figura 1 Representao simplificada da arquitetura cliente-servidor

Analisando a representao da figura 1, vemos um computador representando

a mquina cliente, que pode ser entendida como o computador dos usurios acessando 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 Internet), ou ento por meio de uma rede interna (no caso das empresas que disponibilizam 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 figura 1, o servio requisitado foi desenvolvido utilizando a linguagem PHP, portanto, 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 figura 1, j podemos verificar que ser
necessrio um interpretador da linguagem PHP para retornar ao usurio da aplicao
o resultado final esperado.

O surgimento das linguagens de programao para Internet foi justamente

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

10

durante a fase de repercusso das redes de computadores e da arquitetura clienteservidor. As empresas fornecedoras de linguagens de programao e tambm os especialistas em servios para Internet identificaram 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.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

11

Fique sabendo
Uma comunidade Open Source uma comunidade de desenvolvedores que
desenvolvem e disponibilizam aplicaes e outros recursos que auxiliam no processo 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 interpretador e suas atualizaes ficaram sob a responsabilidade da comunidade livre da
linguagem PHP, que at hoje responsvel pelas correes e atualizaes da linguagem.

Hoje em dia, a linguagem reconhecida mundialmente e muitas aplicaes j

foram desenvolvidas com ela. a linguagem favorita dos acadmicos e desenvolvedores 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 distribuies 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 operacionais 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 comunidades 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;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

12

A linguagem tem suporte e integrao com os bancos de dados mais populares como MySQL, SQL Server, Oracle, DB2, entre outros;
Permite o desenvolvimento de aplicaes dinmicas com recursos como: envio 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, certifiquese 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 linguagem PHP. O servidor WEB mais utilizado pelos desenvolvedores PHP o Apache, que um servidor gratuito, mas o PHP tambm pode ser configurado em outros
servidores WEB como o famoso IIS da Microsoft. Alm disso, o ambiente de desenvolvimento 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 configurao do ambiente de desenvolvimento, existe atual-

mente uma ferramenta chamada Vertrigo que permite a instalao e configurao 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 configurao


disponveis no site. A instalao do Vertrigo bem simples, possui a caracterstica:
Next, Next, Finish ou, em portugus: Prximo Passo, Prximo Passo, Concluir.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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

configurado 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 configuradas em seu computador. Para inicializar o servidor, basta clicar no boto: Hide
this window and start server que significa: Esconda essa janela e inicie o servidor.
A figura 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 figura 3 mos-

tra a tela do VertrigoServ.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

14

Figura 3 Tela do VertrigoServ

Aps digitar o comando, ser mostrada a tela do VertrigoServ. A figura 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 figura 4 ilustra a tela com as informaes do
PHP.

Figura 4 Tela com as Informaes do PHP

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

15

Aps validar a configurao e o funcionamento do ambiente de desenvolvimen-

to, precisamos escolher um editor de comandos para podermos dar incio ao conhecimento 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 anteriormente, um editor PHP ir agilizar e melhorar a produtividade durante o desenvolvimento.

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 figuras 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.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

16

Em seguida, o instalador ir solicitar a confirmao do local para instalao do

PHP Editor, geralmente o diretrio: C:\Arquivos de Programas\PHP Editor. Selecione 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 finalizar (figura 7). Quando o processo

de instalao finalizar, 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.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 confirmar


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 figura 8 ilustra a ferramenta
PHP Editor que utilizaremos durante o curso.

Figura 8 Ferramenta PHP Editor

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

18

No prximo captulo, vamos conhecer a sintaxe da linguagem PHP.

Sntese

Nesta aula vimos:


Uma introduo s linguagens para desenvolvimento de aplicaes para Internet;
A definio 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 definido como:
a. Uma linguagem de programao para Internet
b. Uma linguagem Open Source
c. Uma linguagem interpretada

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 desenvolvimento. Quais dos itens abaixo so obrigatrios nesse ambiente de desenvolvimento ( permitida mltipla escolha):
a. Servidor WEB
b. Banco de Dados
c. Interpretador PHP
d. Editor PHP

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 primeiro exemplo com a linguagem. Aps o desenvolvimento desse
exemplo, ser mostrado como testar o exemplo no ambiente de
desenvolvimento configurado.
Bom estudo!

Objetivos da Aula

Ao final 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

SOCIESC - Sociedade Educacional de Santa Catarina

20

Programao de Pgina WEB - PHP

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 aplicao;
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 identificador que sinaliza o incio do cdigo PHP. Esse


identificador chamado de delimitador. Por meio do delimitador, o interpretador saber onde o incio e o fim do cdigo PHP.

O delimitador PHP representado pelos smbolos:

<?php ou somente <? = incio do bloco de comandos;

?> = fim do bloco de comandos.

O exemplo abaixo demonstra como utilizar o delimitador PHP:

<?php

//instrues PHP;

?>

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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-

pecficas da linguagem HTML e a instruo que no est em negrito uma instruo


PHP. O interpretador ir identificar a existncia de uma instruo PHP por meio dos
delimitadores: <? ?> e interpretar a instruo que foi definida. As instrues HTML
foram includas na pgina apenas para facilitar a formatao do texto que ser mostrado, nesse caso, um texto em negrito, portanto, no ter nenhuma interferncia

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

23

1.2 Separador de instrues


Outro item importante que devemos utilizar no desenvolvimento com PHP o

separador das instrues. Cada instruo definida em uma pgina em PHP deve ser
finalizada com um ponto e vrgula ;.

O interpretador do PHP l as instrues de uma pgina linha a linha. Quando

ele identifica o final de uma instruo, interpreta a instruo e, caso tenha sucesso, ir
disponibilizando o resultado parcialmente. Isso significa que a pgina HTML, resultante do processo de interpretao, ser montada aos poucos, conforme a finalizao da
interpretao das instrues. Esse processo, muitas vezes, transparente aos olhos
do usurio, sendo possvel sua identificao somente quando h lentido na montagem 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
definida.
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 especfica para declarao de nomes de variveis. Ao declarar um nome para uma varivel,
necessrio incluir o smbolo: $ antes da varivel. Esse smbolo ir identificar que o
nome a seguir uma varivel. O interpretador PHP somente reconhecer uma varivel 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
?>
SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 fica 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, fica 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 fica no cdigo e nunca ser interpretado e mostrado na pgina final em HTML
para o usurio.
*/
print Essa frase ser mostrada duas linhas abaixo da primeira frase e abaixo do comentrio de bloco;
?>

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 comandos 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 ficar 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 figura 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 (figura 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 forma, 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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

26

caminho padro de instalao para VertrigoServ no momento da instalao, o diretrio 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 figura 9 mostra onde deve ser selecionado o diretrio: apostila_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 cone 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:

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

27

/PHP e clique no boto: OK. A figura 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 figura 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 ficar dentro dos delimitadores do

PHP: <? e ?>. Os demais comandos que aparecem no arquivo so comandos HTML

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

28

utilizados para a formatao da pgina HTML final, criada pelo interpretador PHP, ao
final 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 texto:
$texto = O teste funcionou ok!;
//Agora vamos imprimir esse texto na tela utilizando o comando 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 figura 12 ilustra
como ficar o cdigo arquivo exemplo4.php.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 final, o contedo da pgina HTML gerado disponibilizado pelo servidor WEB
Apache do ambiente VertrigoServ. A figura 13 ilustra o resultado do teste.

Figura 13 Testando o exemplo4.php

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 disponibilize 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 arquivos 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.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

31

Exerccios propostos
1) Qual das alternativas abaixo no faz parte da estrutura bsica de uma aplicao 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 finalizadas 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 escolha):
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-sensitive
d. O tipo de valor que a varivel est recebendo

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

32

5) O comando PHP que imprime instrues na tela o ( permitida mltipla escolha):


a. printf
b. print
c. printout
d. echo

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

Aula 3

TIPOS DE DADOS SUPORTADOS


PELA LINGUAGEM PHP

Caro aluno(a)!
Nesta aula voc estudar sobre os tipos de dados suportados pela linguagem PHP. Mostraremos como utilizar 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 final desta aula, voc dever ser capaz de:


Identificar 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.

SOCIESC - Sociedade Educacional de Santa Catarina

33

Programao de Pgina WEB - PHP

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 tipagem 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 decimais:
$numero2 = 10.5;
//Vamos imprimir o valor das duas variveis e testar:
print $numero1;
print - ;
print $numero2;
?>

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

35

Se voc testar o exemplo acima, ir verificar que os valores atribudos s duas

variveis foram impressos corretamente na tela. At aqui tudo certo, mas como podemos 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 verificar e executar aes diversas. Nesse exemplo, portanto, para verificarmos 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 $numero2
print Tipo de dado da varivel numero2 : .
gettype($numero2);
?>

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

36

O resultado do teste mostrado na figura 14:

Figura 14 Testando o exemplo5.php

De acordo com o resultado, podemos verificar 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 verificar
agora quais so os tipos de dados que a linguagem PHP fornece para o desenvolvimento 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.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 decimal)
$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 interpretador 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 especificados da seguinte forma:
<?
$numero1 = 1.234;
$numero2 = 23e4; // representa o nmero 230.000
?>
SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 variveis 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 verificar o exemplo:


<?
/* atribuindo texto com aspas simples, vai ignorar o caracter 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;
?>
SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

39

Analisando o resultado do exemplo, vamos verificar que a atribuio feita com

aspas simples mostra o texto como foi escrito. O caracter de escape: \n completamente 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

Significado

\n

Nova linha

\r

Retorno de carro (semelhante a \n)

\t

Tabulao horizontal

\\

A prpria barra ( \ )

\$

O smbolo $

Aspa simples

Aspa dupla

Verifique 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 identificar 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:
<?
//verificar texto2 com a formatao de quebra de linha do \n
print <pre>$texto2</pre>;
?>

Executando novamente o exemplo completo no navegador, podemos verifi-

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>

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 interpretar 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:
<?
//verificar a impresso na tela com aspas simples
print <pre>$texto2</pre>;
?>

Executando o exemplo novamente, o resultado ser a ilustrao da figura 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:

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 ficam 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.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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-texto.
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 ficou mais fcil desenvolver 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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 procedimentos 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 operao 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;
SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 verificar 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), (float) = altera o tipo de dado para float;

(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;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 verificar 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>;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 disponveis na linguagem PHP e, durante o curso, utilizaremos vrias dessas funes.
Porm, para visualizar todas as funes disponveis na linguagem, voc deve consultar 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.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 alternativa 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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

48

c. String
d. Double
4) Para utilizar caracteres de escape na impresso de instrues em PHP necessrio (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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

Aula 4

TRABALHANDO COM VARIVEIS E


CONSTANTES
Caro aluno(a)!
Nesta quarta aula vamos identificar a diferena entre
variveis e constantes. Estudaremos como utiliz-las
nas aplicaes desenvolvidas em PHP. Alm disso, verificaremos
quais so os tipos de variveis disponveis em PHP e como podemos trabalhar com elas. Por fim, veremos mais algumas funes
disponveis em PHP que podem nos auxiliam nos procedimentos
com variveis.
Bom estudo!
Objetivos da Aula

Ao final desta aula, voc dever ser capaz de:

Identificar os tipos de variveis existentes em PHP;

Utilizar variveis para criar rotinas em PHP;

Utilizar funes do PHP para trabalhar com as variveis;

Identificar 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.

SOCIESC - Sociedade Educacional de Santa Catarina

49

Programao de Pgina WEB - PHP

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 especfico, pois o interpretador PHP utiliza
a tipagem automtica para atribuir um tipo de dado a uma varivel. Dessa forma, podemos 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. justamente 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 verificar 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 poderemos 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.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

51

Para verificar 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>

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 informado 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
definido no comando: action=exemplo11.php do comando <form></form>
do formulrio HTML. O tipo de varivel a ser enviado para a pgina definido no comando: 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, utilizando esse mesmo formulrio, poder faz-lo trocando o texto post por get.

Analisando a pgina 2, exemplo11.php, identificamos 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 novamente 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. Verifique 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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

53

o nome ser mostrado corretamente na pgina exemplo11.php. Faa o teste novamente 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 importantes 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 ficam 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 definir que o tipo de varivel indicado

para formulrios em HTML o tipo: POST. O GET poder ser utilizado em outros procedimentos 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_variavel]. 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 Environment.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 aplicaes 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 decimais;

is_long = testa se o tipo de dado da varivel inteiro longo;


is_float = testa se o tipo de dado da varivel float 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);

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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
verificar 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 significa 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 precisamos 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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 verificam se uma varivel possui valor

Existem duas funes que verificam 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 verificado 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 verificado 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 = ;
// verifica se a $variavel1 possui valor vazio ou nulo
print variavel1 = . empty($variavel1);
print <br>;
//destroi a $variavel1
unset($variavel1);
SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

57

//verifica se existe a $variavel1


print variavel1 = . isset($variavel1);
?>
</BODY>
</HTML>
3 TRABALHANDO COM CONSTANTES

Constantes podem ser definidas como uma varivel que possui um valor cons-

tante, ou seja, o valor ser definido uma nica vez e jamais ser alterado durante a
execuo da aplicao. Essa a principal diferena entre uma constante e uma varivel. 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 configura-

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
definido em uma constante.

Para definir uma constante na aplicao, utilizamos a funo: define(nome_

da_constante,valor_da_constante).

A linguagem PHP possui algumas constantes pr-definidas que permitem veri-

ficar as configuraes 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-definidas 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 definir e utilizar uma constante dentro das

pginas PHP:
Pgina: exemplo14.php

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

<HTML>
<HEAD>
<TITLE>Exemplo 14</TITLE>
</HEAD>
<BODY>
<?
// definir a constante taxa de juros
define(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>

SOCIESC - Sociedade Educacional de Santa Catarina

58

Programao de Pgina WEB - PHP

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 configurao do PHP (apenas
uma alternativa correta):
a. Ambiente

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

60

b. Post
c. Sesso
d. Servidor
4) A funo que verifica 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 alternativa 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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

Aula 5

OPERADORES DA LINGUAGEM PHP

Caro aluno(a)!
Nesta quinta aula voc conhecer os tipos de operadores 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 fim,
realizaremos alguns testes para identificar melhor a funcionalidade
dos operadores e tambm da expresso condicional.
Bons Estudos!

Objetivos da Aula

Ao final desta aula, voc dever ser capaz de:

Identificar os tipos de operadores da linguagem PHP;

Utilizar os tipos de operadores;

Identificar 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.

SOCIESC - Sociedade Educacional de Santa Catarina

61

Programao de Pgina WEB - PHP

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, verificremos 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 reais.

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>

<?

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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>

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 significa 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>

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 significa que a

atribuio ir alterar definitivamente 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 verificarmos 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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 valores de variveis e condies.
1.5 Operadores de Comparao

Os operadores de comparao so utilizados para comparar valores entre

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 decremento 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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

68

operadores de incremento e decremento nos exemplos dos prximos captulos. No exemplo 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 verificar uma dada condio e, dependendo do
valor da condio retornado valor booleano: true ou false a expresso executar

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 condicional 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 verificar 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 verificar se os valores das variveis: $numero1 e $numero2 so iguais e depois imprime um texto de acordo com o retorno da condio
/ comparao feita */
SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

70

print ($numero1==$numero2)?Valores iguais:Valores diferentes;


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.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

71

Exerccios propostos
1) Os operadores que permitem a realizao de clculos matemticos so (mltipla 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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

72

5) A expresso condicional pode ser definida como ( permitida mltipla escolha):


a. Um operador aritmtico
b. Um operador de atribuio
c. Um comando de seleo
d. Um operador de seleo ternrio

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 final desta aula, voc dever ser capaz de:

Identificar quais so as estruturas de controle do PHP;


Identificar como e quando utilizar as estruturas de controle;

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.

SOCIESC - Sociedade Educacional de Santa Catarina

73

Programao de Pgina WEB - PHP

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, identificar vrias caractersticas semelhantes nas estruturas 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 verificar 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 fim 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 blocos de comando. A existncia de um bloco de comando ser dispensada quando o
procedimento tiver apenas uma instruo de comando.

A seguir, verificaremos 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 blocos de comando, definidos de acordo com o resultado da comparao.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

75

A expresso condicional, que verificamos 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 verifi-

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 definida.

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.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

76

Pgina: exemplo20.php

<HTML>

<HEAD>

<TITLE>Exemplo 20</TITLE>

</HEAD>

<BODY>

<?

// testando o if

$numero1 = 5;

$numero2 = 4;

/* utiliza o if para verificar 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;

?>

</BODY>

</HTML>

print <BR>;

Analisando o resultado do teste, verificaremos que a mensagem: As variveis

possuem valores diferentes foi impressa na tela, pois realmente elas possuem valores 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-

ficar se os valores das variveis so iguais. Para isso, vamos utilizar o operador de
comparao de igualdade:

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

77

Pgina: exemplo21.php

<HTML>

<HEAD>

<TITLE>Exemplo 21</TITLE>

</HEAD>

<BODY>

<?

// testando o if

$numero1 = 5;

$numero2 = 4;

/* utiliza o if para verificar 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 - igualdade

*/
if ($numero1==$numero2){

print

As

variveis

possuem

valores

iguais;

?>

</BODY>

</HTML>

print <BR>;

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 :

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 precisamos analisar uma srie de condies no mesmo procedimento. Esse encadeamento uma mistura entre IFs e Elses dentro do cdigo. Veja como fica a sintaxe:
IF(condio1){

Instruo1;

Instruo2;

Etc;

} Else IF(condio2) {

Instruo1;

Instruo2;

Etc;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 final,
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>

<?

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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
ficar 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 comparar 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>

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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:

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

83

print A diviso varivel por 2 5;

break;

default:

print A diviso varivel por 2 di-

ferente de 0 e 5;

?>

</BODY>

</HTML>

break;

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 fique 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 fique 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:

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 resultado 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 ficar 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 infinitamente. Essa caracterstica comum para todas as
estruturas de repetio.

No caso especfico 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 sucessivamente, 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;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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>;

// verifica se o valor da varivel 10 e im-

prime o fim 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 final do comando. Isso significa 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:

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 valor
++$numero;
// imprime o novo valor da varivel $numero

print O valor da varivel numero agora .$nu-

mero . <BR>;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

87

// verifica se o valor da varivel maior ou igual 10 e imprime o fim 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 fim dessa lista.

imprescindvel que saibamos o incio e o fim da lista, pois estes dados so

utilizados na sintaxe do for. Vamos analisar a sintaxe do for:


For(inicializao;condio;incremento ou decremento do contador)

Instruo;

Ou utilizando bloco de comandos:


For(inicializao;condio;incremento ou decremento do contador){
Instruo1;

InstruoN;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 temos 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++){

?>

</BODY>

</HTML>

print $arrayNomes[$contador] . <br>;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

89

4 ESTRUTURAS DE QUEBRA DE FLUXO


As estruturas de quebra de fluxo so geralmente utilizadas para dar suporte s

outras estruturas de controle. So utilizadas para quebrar o fluxo 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 fluxo: 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
definidas.

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 fluxo 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>

<?

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

90

// testando a quebra de fluxo 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 interpretador encontrou a estrutura de quebra de fluxo 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 fluxo 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.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

91

Vamos utilizar o mesmo exemplo do Break, alterando-o para Continue e verifi-

car a diferena entre eles.


Pgina: exemplo28.php

<HTML>

<HEAD>

<TITLE>Exemplo 28</TITLE>

</HEAD>

<BODY>

<?

// testando a quebra de fluxo 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 fica abaixo do continue, assim como quando utilizamos
o break, nunca ser executada.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 escolha):
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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

93

4) A estrutura de repetio que testa o valor da condio no final :


a. While
b. For
c. Do ... While
d. Switch
5) As estruturas de quebra de fluxo so utilizadas para ( permitida mltipla escolha):
a. Finalizar uma instruo
b. Dar suporte s outras estruturas de controle
c. Alterar o fluxo das estruturas de repetio
d. Interromper a execuo da pgina

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

Aula 7

CLASSES E OBJETOS

Caro aluno(a)!
Nesta aula voc estudar sobre programao orientada a objetos na linguagem PHP.
Revisaremos os conceitos bsicos da Orientao a Objetos; verificaremos a aplicao desses conceitos na linguagem PHP e, ao
final, construiremos alguns exemplos utilizando a programao
orientada a objetos. O contedo visto nesta aula ser bastante aplicado no nosso estudo de caso.
Bons Estudos!

Objetivos da Aula

Ao final desta aula, voc dever ser capaz de:

Identificar os conceitos bsicos de Orientao a Objetos;


Identificar 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.

SOCIESC - Sociedade Educacional de Santa Catarina

94

Programao de Pgina WEB - PHP

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 Orientao a Objetos, que verificaremos neste captulo, abordar alguns conceitos bsicos da Orientao a Objetos e tambm demonstrar como podemos, por meio da
linguagem PHP, aplicar seus conceitos no desenvolvimento de aplicaes.

Esses conceitos sero suficientes para compreendermos como a linguagem

PHP implementa a programao orientada a objetos.


1.1 Classes e Objetos

Na definio bsica da orientao a objetos, uma classe pode ser definida

como a estrutura que cria novos objetos. Isso significa 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 definidos 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 aplicao.

Da mesma forma, os objetos tambm sero armazenados em memria, porm

os objetos possuem caractersticas diferentes. Vamos imaginar que estamos desenvolvendo um sistema acadmico onde h a manuteno do cadastro de alunos. Por
meio dessa manuteno possvel: cadastrar novos alunos, alterar cadastros de alunos existentes, apagar e visualizar o cadastro completo do aluno.

Por meio da funcionalidade: Visualizar Cadastro Completo do Aluno ser

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

96

visualizar todos os dados do cadastro do aluno. Nessa tela sero mostrados os


seguintes dados: Matrcula, Nome, Endereo, Telefone do Aluno. Se quisermos trabalhar com os dados de um Aluno nessa tela, permitir a alterao dos dados, por exemplo, 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 armazenados 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 vantagem, 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

definir algumas funcionalidades especficas para cada objeto.


No exemplo do objeto Aluno, definimos como atributos desse objeto: Matrcula,

Nome, Endereo e Telefone. Os valores dos atributos sero os dados do Aluno armazenados no sistema e, para cada registro de Aluno no sistema existir um objeto
Aluno. Como os atributos esto agrupados em um nico local, possvel definir funcionalidades 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,
identificamos 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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 definidas na aplicao. Logo, a funcionalidade
remover registro de aluno tambm comum para todos os objetos Aluno.

Aps essa anlise, podemos identificar os seguintes itens:


1. Todos os objetos Aluno tero os atributos: Matrcula, Nome, Endereo e Telefone, dados que so comuns entre todos os registros de alunos do sistema
2. Todos os objetos Aluno podero ter as funcionalidades: Alterar Dados do Aluno, 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 definio 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 informao, 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 definio da classe: pode ser definida como uma estrutura que cria objetos.

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 verificar o formato de uma classe:
Classe Aluno

Atributos:

Matrcula

Nome

Endereo

Telefone

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

98

Funcionalidades:

Cadastra Aluno

Altera dados do Aluno

Apaga dados do Aluno

Retorna dados do Aluno

Analisando o formato da classe aluno, verificamos que foram definidos os atrib-

utos utilizados pelo objeto Aluno e tambm suas funcionalidades. A funo da classe
ter a estrutura final 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 definir 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 formato de estrutura definido 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 definidos de
acordo com os dados dos objetos que desejamos armazenar e/ou manipular.

Quando definimos a estrutura de uma classe, podemos incluir um mtodo

construtor. O mtodo construtor sempre ser executado toda vez que a classe for

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

99

utilizada para criar um novo objeto. Uma classe pode ter mais de um mtodo construtor, 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 parmetros 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


especfico da aplicao executado e a utilizao do objeto em memria no mais
necessria. Para evitar que os objetos fiquem em excesso na memria objetos que
no sero mais utilizados pela aplicao no procedimento so destrudos e removidos 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 mtodo de funcionalidade definido dentro da classe. A ao que o mtodo ir executar tambm ser definida 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 funo 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 parmetro e retorna a soma desses dois nmeros. Nesse caso, os nmeros foram passados por parmetro para auxiliar na execuo da funo do mtodo: realizar a soma
dos nmeros recebidos por parmetro.

No prximo tpico, verificaremos qual a sintaxe para a definio das classes

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

100

e como feita a criao dos objetos por meio de uma classe.


2 TRABALHANDO COM CLASSES E OBJETOS

Quando definimos uma classe em PHP, devemos utilizar a seguinte sintaxe:

class NomeDaClasse{

[modificador] atributo1;

[modificador] atributoN;

[modificador] function mtodo1([parmetros]){

Instruo1;

InstruoN;

[modificador] function mtodo1([parmetros]){

Instruo1;

InstruoN;

Observemos que existem alguns itens entre colchetes, so os modificadores e

os parmetros, representados entre colchetes, pois a definio deles opcional. Isso


significa que no necessrio informar estes itens, quando definimos 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 modificadores indicados na sintaxe da classe so os comandos que defi-

nem a visibilidade dos itens da classe e, conseqentemente, do objeto criado por meio
dela. A visibilidade identificar como os atributos e mtodos sero utilizados por toda
a aplicao. H trs tipos de visibilidade:

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

101

1. Public deixa os atributos/mtodos pblicos para toda a estrutura da aplicao.


2. Protected permite que somente algumas pginas e objetos do sistema tenham acesso aos atributos e mtodos da classe, que ficam protegidos e podero
ser acessados somente por pginas e objetos que fazem parte do mesmo pacote mesmo caminho fsico onde se encontra o arquivo da classe.
3. Private tornar os atributos/mtodos privados. Isso significa que somente
a prpria classe/objeto poder acessar e manipular os atributos e mtodos
definidos como privados.

Geralmente, os atributos de uma classe so definidos como privados utilizam

o modificador private no incio da declarao - porque, segundo o conceito de encapsulamento da orientao a objetos, somente o prprio objeto poder manipular seus
atributos, mantendo a integridade dos dados dos objetos e evitando que procedimentos 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
SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 definida. 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 verifica
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!

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

103

Quando queremos que o formulrio envie as variveis para a


mesma pgina, no especificamos 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>
<?
//verifica 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];
//verifica 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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

104

objeto que possui a estrutura


// da classe operao
// vamos ento chamar o mtodo adicao e obter o resultado 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 identificar trs co-

mandos que ainda no foram utilizados:


1. require_once(arquivo) esse comando permite incluir um arquivo php dentro 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 identificada.
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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

105

ser criado e o mtodo: adicao executado. Como o mtodo adicao retorna o resultado,
podemos imprimir o resultado na tela. Ao final, como no iremos mais utilizar o objeto:
Operao, podemos destru-lo, removendo-o da memria.
Sntese

Nesta aula fizemos 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 correta):
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 correta):
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.operacao.php e altere o formulrio do exemplo29.php para permitir que o usurio selecione a operao que deseja realizar.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

Aula 8

CONTROLE DE SESSO

Caro aluno(a)!
Nesta oitava aula voc estudar sobre o controle de
sesso em PHP. Verificaremos o que uma sesso e
como podemos utiliz-la em aplicaes para Internet. O controle de
sesso muito utilizado, principalmente por aplicaes que possuem restrio de acesso de usurios.
Bons Estudos!

Objetivos da Aula

Ao final desta aula, voc dever ser capaz de:

Identificar 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.

SOCIESC - Sociedade Educacional de Santa Catarina

106

Programao de Pgina WEB - PHP

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 desenvolvidas 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 cliente e o servidor, mantida pela prpria mquina cliente at a finalizao 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 cliente-servidor estabelecida, a sesso do cliente criada. Aps a criao da sesso,
possvel utiliz-la para criar variveis.

A sesso uma identificao 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 relacionadas com a sesso tambm sero encerradas. Dessa forma, quando trabalhamos
com variveis de sesso necessrio sempre verificar 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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

108

de sesso.
session_is_registered(nome_da_variavel) - verifica se a varivel de sesso
existe na sesso. Essa funo ir retornar um valor booleano - verdadeiro ou
falso.
session_destroy() = finaliza 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(),


finaliza 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 usurios; 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>
SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

Pgina: exemplo31_form.php
<?
//inicia a sesso
session_start();
if(isset($_POST[login])){
$login = $_POST[login];
$senha = $_POST[senha];
//verifica 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>
SOCIESC - Sociedade Educacional de Santa Catarina

109

Programao de Pgina WEB - PHP

110

<?
//verifica 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 incorretos;
}
//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, definido 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 aconselhvel manter muitos dados em sesso.

Antes de finalizarmos 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 final 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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

111

certeza de que no ser impresso nada na tela do usurio.


Outra dica importante com relao funo: session_start(). Se voc verificar

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 verificar como funcionam as sesses em PHP.

Exerccios propostos
1) A sesso pode ser definida como (apenas uma alternativa correta):
a. Uma varivel
b. Uma constante
c. Uma identificao 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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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()

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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.
Identificaremos 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 final desta aula, voc dever ser capaz de:


Identificar quais so as funes necessrias para trabalhar
com o MySQL;
Identificar os passos para fazer uma conexo com o MySQL;
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.

SOCIESC - Sociedade Educacional de Santa Catarina

113

Programao de Pgina WEB - PHP

114

1 INTRODUO

Grande parte das aplicaes disponveis na Internet, atualmente, possuem

contedo dinmico, ou seja, possuem o contedo armazenado em um banco de dados. 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 definido onde sero publicados os contedos armazenados em banco de
dados e, conforme so atualizados sero disponibilizados automaticamente no local
definido.

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 armazenado no banco de dados MySQL.

Se voc fez a instalao do VertrigoServ, tambm j tem instalado e configu-

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. Identificar 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 verificar

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 identificador 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


identificador da conexo com o servidor ficar 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, identificador_conexao);

A funo de seleo do banco de dados que ir retornar 0, se no encontrar

o banco de dados no servidor especificado pelo identificador 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 utilizado 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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 manipulao 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, identificador_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, significa 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 identificador que possui a identificao
do resultado da seleo realizada. Para visualizarmos o resultado da seleo, ser
necessrio utilizarmos a funo mysql_result, cuja sintaxe :
mysql_result(identificador_resultado, linha_registro, campo_registro);

O identificador do resultado obtido por meio do retorno da funo mysql_que-

ry. A linha especifica a linha de registro a ser exibida, j que uma query SELECT pode
retornar diversas linhas de registros, e campo o identificador do campo a ser exibido.
Vejamos um exemplo:
$consulta = SELECT nome, email FROM usuario WHERE nome
LIKE Joo;
SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 funo, por exemplo, a funo mysql_fetch_row, que possui a seguinte sintaxe:
mysql_fetch_row(identificador_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 utilizando 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.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 manipulao dos dados de um banco de dados MySQL.

Exerccios propostos
Para resolver os exerccios seguintes, obrigatria a criao do banco de dados 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 integrao para executar os seguintes comandos SQL:
a. Inserir os seguintes registros na tabela Marcas:

i. 1 Citroen

ii. 2 Audi

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 alterao.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

Aula 10

ESTUDO DE CASO:
REVENDA DE AUTOMVEIS
Caro aluno(a)!
Nesta dcima aula reveremos todos os conceitos vistos at agora e consolidaremos nossos conhecimentos
com o incio do desenvolvimento de uma aplicao para revenda
de automveis.

Verificaremos 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
finalizar essa aula, ficar como desafio para voc, desenvolver o
restante da aplicao seguindo as dicas e o conhecimento adquirido na disciplina.
Bons Estudos e bom desenvolvimento!
Objetivos da Aula

Ao final 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.

SOCIESC - Sociedade Educacional de Santa Catarina

120

Programao de Pgina WEB - PHP

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.

Verificaremos 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 finalizarmos esses itens, voc j ser
capaz de dar continuidade na aplicao e desenvolver os demais recursos.

Ao final 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 manipulao 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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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(){

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 finalizado/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 identificador da

conexo realizada e o getInstancia sempre retornar o mesmo objeto em memria


para os demais objetos da aplicao. Esse mtodo foi configurado 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 finalizadas. Essas conexes que ficam 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 final da aplicao, essa conexo ser devidamente finalizada.

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(){

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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++;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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);

//verifica se deve ser retornado o id

$id = mysql_insert_id($this->conexao);

//verifica se teve erro no query

if (mysql_errno($this->conexao)){

echo mysql_error($this->conexao);

return $id;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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);

//verifica 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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 flexibilidade e organizao dos
comandos SQL em um nico local. Observando os mtodos criados, identificamos
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 significa
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 final, 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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

129

programao orientada a objetos e identifica as classes que possuem a estrutura das tabelas definidas 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 correspondente. 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;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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, identificamos 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 semelhante, 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);

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 = ;

//verifica se retornou um resultado

if(sizeof($resultado)>0){

$marca = new Marca();

$marca->setCod($resultado[0][marca_cod]);

$marca->setDesc($resultado[0][marca_desc]);

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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){

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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);

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

//destroi objeto

136

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 especficos para a manipulao dos dados da tabela: Marcas do banco de dados revenda.

Analisando o cdigo fonte da classe, identificamos mtodo para cada tipo de

manipulao no banco de dados. H dois mtodos de seleo no banco: o getListaObjeto que ir retornar uma lista de objetos Marca, de acordo com a quantidade de registros existente no banco de dados e o getObjeto, que retorna um nico objeto Marca.
Esse segundo mtodo utilizado para pegar um registro especfico da tabela por meio
da chave primria campo que identifica 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 transform-los em objetos dentro da aplicao. Assim, o mtodo: geraArrayObjeto o responsvel 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 anterior, ser a ponte entre o objeto e o banco de dados.

Assim, todas as tabelas do banco de dados revenda tero duas classes

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 registros no banco de dados.

Vamos agora criar as classes Bean e Regra de Negcio para as tabelas: Mod-

elos e Automoveis. Verifique 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;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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);

SOCIESC - Sociedade Educacional de Santa Catarina

138

Programao de Pgina WEB - PHP

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;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

//mtodo que recebe um array de registros e retorna um ar-

ray de objetos

140

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;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 = ;

//verifica 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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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{

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

//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 $isufilm;

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;

SOCIESC - Sociedade Educacional de Santa Catarina

144

Programao de Pgina WEB - PHP

$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->isufilm = 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;

SOCIESC - Sociedade Educacional de Santa Catarina

145

Programao de Pgina WEB - PHP

//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;

SOCIESC - Sociedade Educacional de Santa Catarina

146

Programao de Pgina WEB - PHP

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;

SOCIESC - Sociedade Educacional de Santa Catarina

147

Programao de Pgina WEB - PHP

//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;

SOCIESC - Sociedade Educacional de Santa Catarina

148

Programao de Pgina WEB - PHP

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

SOCIESC - Sociedade Educacional de Santa Catarina

149

Programao de Pgina WEB - PHP

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){

150

$this->cambioaut = $paramCambioAut;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

public function getCambioAut(){

151

return $this->cambioaut;

//cdplayer

public function setCdPlayer($paramCdPlayer){

$this->cdplayer = $paramCdPlayer;

public function getCdPlayer(){

return $this->cdplayer;

//isufilm

public function setIsufilm($paramIsufilm){

$this->isufilm = $paramIsufilm;

public function getIsufilm(){

return $this->isufilm;

//limpadortraseiro

public function setLimpadorTraseiro($paramLimpadorTraseiro

){

$this->limpadortraseiro = $paramLimpadorTraseiro;

public function getLimpadorTraseiro(){

return $this->limpadortraseiro;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

//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

SOCIESC - Sociedade Educacional de Santa Catarina

152

Programao de Pgina WEB - PHP

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_isufilm,;

$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;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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]);

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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->setIsufilm($array[aut_isufilm]);

$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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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_isufilm,;

$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 = ;

//verifica 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]);

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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->setIsufilm($resultado[0][aut_isu-

film]);

$automovel-

->setLimpadorTraseiro($resultado[0][aut_limpadortraseiro]);

$automovel->setOutros($resultado[0][aut_out-

ros]);

$automovel->setVendido($resultado[0][aut_ven-

dido]);

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 utilizaro 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 selecionar uma Marca, um Modelo relacionado Marca selecionada e verificar a lista
de carros relacionadas ao Modelo para consulta.
2. admin/marca_lst.php pgina da administrao que permitir ao administrador 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 acordo 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:

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

159

Pgina: index.php
<html>
<head>
<title>Revenda de Automveis</title>
<meta http-equiv=Content-Type content=text/html; charset=iso8859-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

Marca</op-

tion>

<?

$marca_cod=0;

if(isset($_POST[marca_cod])){

$marca_cod = $_POST[marca_cod];

$lista = MarcaRN::getListaObjeto(,);

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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){

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

161

?>


Cod()?>

<?

<option

value=<?=$oModelo->get-

($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>

<?

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

162

}//foreach



?>

</table>

</td>

</tr>

</table>
</form>
</body>
</html>
Pgina: admin/marca_lst.php
<?
/* Indica que o arquivo no deve ficar em cache (fora o seu reprocessamento) */
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){

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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);
// verifica se cadastro ou alterao
if (isset($_GET[cod])){
// alterao

$cod = $_GET[cod];

$oMarca = MarcaRN::getObjeto($cod);

} else {
// cadastro

$cod = 0;

$oMarca = new Marca();

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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) { ?>

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 verificar 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;

}
//Verifica se foi clicado no boto apagar
if

((isset($_POST[btnApagar]))

&&

($_POST[btnApagar]

Apagar)){

if ($cod > 0){

MarcaRN::delObjeto($oMarca);

SOCIESC - Sociedade Educacional de Santa Catarina

==

Programao de Pgina WEB - PHP

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 verifique o exemplo
que desenvolvemos.

Ainda na administrao podero ser desenvolvidas as telas de manuteno

das outras tabelas do banco de dados, isso dar bastante flexibilidade para os mantenedores da aplicao.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 Internet. 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 possuem cada vez mais demanda para o profissional que est atualizado com este tipo
de tecnologia.

Portanto, imprescindvel que os profissionais de informtica, tenham conhe-

cimento bsico da programao para a Internet. Este conhecimento ir possibilitar


ao profissional 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.

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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

SOCIESC - Sociedade Educacional de Santa Catarina

168

Programao de Pgina WEB - PHP

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 visibilidade 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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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;

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 especificamos 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>
<?
//verifica 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];

//verifica se as variveis possuem valor diferente de vazio


if(!empty($num1) && !empty($num2)){

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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>;
}

SOCIESC - Sociedade Educacional de Santa Catarina

173

Programao de Pgina WEB - PHP

174

print Alterao de Registro<br><br>;


//altera o registro 3 da tabela
mysql_query(UPDATE marcas SET marca_desc = Pegeout WHERE marca_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>

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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/

SOCIESC - Sociedade Educacional de Santa Catarina

Programao de Pgina WEB - PHP

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 catalogrfica elaborada pela Biblioteca Universitria Tupy Virtual

Crditos
SOCIESC Sociedade Educacional de Santa Catarina

Design Grfico
Thiago Vedoi de Lima

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

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 Grfico
Equipe Tupy Virtual
Reviso Ortogrfica
Ndia Ftima de Oliveira

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

SOCIESC - Sociedade Educacional de Santa Catarina

Você também pode gostar