apostila php ejovem

Upload: elsoncjunior

Post on 13-Jul-2015

233 views

Category:

Documents


0 download

TRANSCRIPT

PROJETO E-JOVEM

APOSTILA PHP

Projeto E-JOVEM

ndice1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. Histria e Funcionalidades do PHP .................................................................................... 4 O ambiente WEB .................................................................................................................. 7 Ambiente de desenvolvimento ............................................................................................. 9 Ambiente HTTP.................................................................................................................. 12 Estrutura do cdigo PHP ................................................................................................... 17 Integrando PHP com HTML ............................................................................................. 20 Tipos de Dados .................................................................................................................... 21 Variveis .............................................................................................................................. 24 Constantes ........................................................................................................................... 25 Operadores .......................................................................................................................... 26 Estruturas de Controle ....................................................................................................... 32 Funes: definio, criao, return, parmetros. ............................................................ 37 Reutilizao de Cdigo Include e require......................................................................... 40 Funo Recursiva ............................................................................................................... 41 Trabalhando com Array .................................................................................................... 43 Trabalhando com String .................................................................................................... 50 Trabalhando com Data e Hora .......................................................................................... 56 Formulrios HTML ............................................................................................................ 60 Upload de Arquivos ............................................................................................................ 63 Sesses e Cookies ................................................................................................................ 66 Manipulando Arquivos ...................................................................................................... 67 Enviando E-mail ................................................................................................................. 72 Integrando PHP com Mysql .............................................................................................. 76 Ferramenta para trabalhar com Mysql phpMyAdmin ................................................. 80 Introduo a OO com PHP ................................................................................................ 81 Definindo uma Classe ......................................................................................................... 84 Construtores e Destrutores ................................................................................................ 88 Instanciando um Objeto ..................................................................................................... 91 Trabalhando a segurana do seu sistema ......................................................................... 92 Exerccios Resolvidos ....................................................................................................... 102 Exerccios Propostos ......................................................................................................... 115

3

Projeto E-JOVEM

IntroduoTraremos nesta apostila uma das linguagens mais utilizadas para o desenvolvimento WEB, a linguagem PHP que um acrnimo (sigla) para Hypertext Preprocessor, o PHP uma linguagem de cdigo-fonte aberto. Em comparativo com outras linguagens como PERL ou C, o PHP ao invs de escrever um programa com um monte de comandos para imprimir HTML, voc escreve um arquivo HTML com algum cdigo inserido para fazer alguma coisa (nesse caso, imprimir um pouco de texto). O cdigo PHP delimitado por tags iniciais e finais que lhe permitem pular pra dentro e pra fora do modo PHP, mas isso explicaremos melhor durante o curso. 1. Histria e Funcionalidades do PHP O PHP foi criado por volta de 1994 por Rasmus Lerdorf, que inicialmente o utilizava em sua home page pessoal. Em meados de 1995 ele passou a ser utilizado por outras pessoas e foi reescrito com novos recursos, sendo renomeado para PERSONAL HOME PAGE Tools/FI, e entre os novos recursos, passou a contar com suporte ao MSql. Dois anos mais tarde o PHP deixou de ser um projeto pessoal de Rasmus e passou a ser desenvolvido por uma equipe de colaboradores, e neste perodo, foi lanada a verso 3 do PHP. A partir da verso 4 o PHP passou a utilizar a engine de scripting da ZEND, para melhorar a performance e suportar uma variedade maior de bibliotecas externas e extenses. At maro de 2002, o PHP estava sendo utilizado em 9.000.000 de domnios. Atualmente esses nmeros chegam a 37,10% dos sites do mundo todo. Rasmus Lerdorf iniciou o desenvolvimento do PHP para mostrar as estatsticas de sua pgina pessoal, substituindo alguns scripts feitos em Perl. 1.1. A Linguagem PHP A linguagem PHP voltada principalmente para o ambiente WEB, mas pode ser usada para a criao de aplicaes desktops, aplicaes servidoras, de rede, entre outros. Se voc ainda no est habituado com linguagens de programao, poder achar inicialmente PHP um pouco difcil, mas logo perceber que uma linguagem muito fcil. PHP uma linguagem orientada a objetos e sua sintaxe bem parecida com a do C, s que bem mais simples e prtica. 1.2. Vantagens e o que pode ser feito com PHP Qualquer coisa feita pode ser feita com PHP, como coletar dados de formulrios, gerar pginas dinmicas, enviar e receber cookies. Alm disso, PHP tem suporte a outros servios atravs de protocolos como IMAP, SNMP, NNTP, POP3 e, logicamente, HTTP. Ainda possvel abrir sockets e interagir com outros protocolos.

4

Projeto E-JOVEM

Algumas vantagens do PHP: uma linguagem de fcil aprendizado; Tem performance e estabilidade excelentes; Seu cdigo aberto, no preciso pagar por sua utilizao, e possvel altera-lo na medida da necessidade de cada usurio. Tem suporte nos principais servidores web do mercado e suporte nativo no servidor web apache (o mais utilizado no mundo); Suporta conexo com os banco de dados mais utilizados no mercado, como por exemplo MySQL, PostgreSQL, Oracle e DB2; multiplataforma, tem suporte nos sistemas operacionais mais utilizados no mercado; No precisa ser compilado; Aceita orientao a objetos;

1.3. Como Funciona O PHP. Ao digitar um endereo no seu browser (Firefox, Internet Explorer, chrome), abrir uma comunicao simples entre o cliente (seu browser) e o servidor Web funcionando da seguinte forma: O cliente (seu browser) decompe a URL (endereo da pgina) em vrias partes, tais como nome do domnio, nome da pgina e protocolo. Por exemplo, o domnio HTTP://www.teste.com.br/noticia.php, teria o nome de domnio teste.com.br, o nome da pgina noticia.php e o protocolo HTTP. O DNS (Servidor de Nome de Domnio) interpretar o seu domnio informando seu endereo de IP, nmeros combinados que representa o endereo real no site na internet (como se fosse o CEP da nossa rua). Por exemplo, para o domnio teste.com.br ns teramos o endereo de IP 69.38.21.53. Ento o que seria mais fcil de lembrar, o domnio ou seu endereo de IP ? O cliente (seu browser) determina qual protocolo ser usado. Por exemplo, temos o protocolo HTTP (Protocolo de Transferncia de HiperTexto) e FTP (Protocolo de Transferncia de Arquivo). Ento o servidor web retorna os arquivos solicitados. Por exemplo, no domnio HTTP://www.teste.com.br/noticia.php, o browser solicita o arquivo noticia.php do servidor teste.com.br e ficar aguardando a resposta. O servidor ento responde os pedidos do browser. Verifica se o endereo existe, encontra os arquivos necessrios, executa as instrues apropriadas e retorna para os resultados de volta para o browser. Se no puder localizar o arquivo, o servidor envia a uma mensagem de erro para o cliente.

5

Projeto E-JOVEM O browser recebe os dados do servidor na linguagem HTML interpreta essas instrues e exibe os resultados para o usurio.

Esse processo repetido at que o cliente (seu browser) deixe o site. 1.4. Exemplo de um cdigo PHP 1.5. Site oficial PHP e como utiliza-lo O site oficial do php HTTP://www.php.net, l podemos tirar duvidas sobre funes, visualizar sua documentao, fazer download do PHP, ler notcias e novidades sobre o PHP, reportar bugs, ler o FAQ, entre outras coisas. 1.5.1. Buscando uma funo no site Quando voc estiver com dvidas sobre uma determinada funo poder recorrer sempre ao site oficial do PHP. Para isso, vamos seguir os passos: 1. Digite o endereo do site: HTTP://www.php.net 2. Procure por search for, que encontra-se no canto superior direito. 3. Digite uma funo por exemplo, print. 4. Verifique se est in the function list. Isso quer dizer que voc far sua busca dentro da lista de funes. 5. Aperte Enter ou clique na setinha para pesquisar a funo. Ser exibida uma tela, onde mostrar a funo, sua descrio, seus parmetros, seu valor retornado, exemplos e funes relacionadas. A maioria das funes possui exemplos e esto disponveis em portugus.

6

Projeto E-JOVEM

2. O ambiente WEB 2.1. Como funciona a internet Para seu funcionamento, a internet utiliza um procedimento detalhado para a troca de dados. Existem regras a serem seguidas, que so chamadas de "protocolos de comunicao". Essas regras so similares as da linguagem humana. Por exemplo, quando duas pessoas esto conversando, enquanto uma fala a outra escuta, para que haja uma compreenso necessrio que as palavras estejam dentro da sintaxe da linguagem conveniente. Caso o interlocutor no compreenda a mensagem, ele solicita que seja repetida. 2.2. Protocolo TCP/IP Para a troca de mensagens na internet foi desenvolvido o protocolo TCP/IP Transmission Control Protocol/Internet Protocol (Protocolo de Controle de Transmisso/Protocolo de Internet). O TCP/IP o protocolo bsico para a comunicao entre as mquinas conectadas internet, que gerencia toda a parte de transmisso e distribuio de dados na rede. 2.2.1. Funes do TCP O TCP - Transmission Control Protocol(Protocolo de Controle de Transmisso) o responsvel por quebrar a mensagem em pacotes de informao. Quando o computador de destino da mensagem recebe os pacotes, ele utiliza o TCP para recombin-los na mensagem original. Comparando a quantidade de informao enviada com a quantidade de Informao recebida na mensagem, o computador de destino pode ento garantir que no ocorreram erros na transmisso da mensagem. 2.2.2. Funes do IP O IP - Internet Protocol(Protocolo de internet) o responsvel por assegurar que a informao chegar no computador de destino. Resumindo o IP tem as funes de: Cuidar do envelopamento Endereamento (remetente e destinatrio) Envio dos dados empacotados 2.3. Protocolo HTTP O HTTP o protocolo que gerencia e formaliza as requisies e as respostas trafegadas entre o cliente e o servidor web. Caso o servidor web encontre a pgina, ela ser enviada em partes ao navegador, caso contrrio, o servidor enviar uma mensagem de erro.

7

Projeto E-JOVEM

2.4. Servios da Internet Abaixo listamos alguns servios disponveis na internet e suas definies: WEB (www) Pginas com os mais variados assuntos. um sistema de documentos em hipermdia que so interligados e executados na Internet. Os documentos podem estar na forma de vdeos, sons, hipertextos e figuras. Correio Eletrnico - Comunicao entre pessoas atravs de mensagens escritas (@). O funcionamento do e-mail segue o seguinte procedimento. Voc escreve a mensagem no seu computador para algum. Esta mensagem vai primeiro para o seu provedor que transmite para o provedor da pessoa para quem voc escreveu. Ento, a pessoa deve acessar o prprio provedor para resgatar sua mensagem. FTP FTP significa File Transfer Protocol (Protocolo de Transferncia de Arquivos), e uma forma bastante rpida e verstil de transferir arquivos (tambm conhecidos como ficheiros), sendo uma das mais usadas na internet. WAP Disponibilizao de recursos da Internet via telefonia celular Conversas On-line - Troca de informaes simultneas

Abaixo temos uma figura que demonstra muito bem a forma como acessamos esses servios:

Porm para acessarmos esses servios precisamos utilizar os provedores da internet, veja abaixo algumas explicaes. Algumas das formas para conectarmos a internet: Uma linha telefnica discada: dial-up. Para a conexo dial-up ser necessrio uma linha telefnica, ligada a um modem, conectado ao computador e um provedor de acesso para onde voc vai ligar e que ir permitir seu acesso Internet.

8

Projeto E-JOVEM Conexes de alta velocidade: ADSL, fibra tica, TV a cabo, satlite. Conexo dedicada um tipo caro mas muito rpido de conexo. o utilizado normalmente pelos provedores: a estao do provedor conectada via cabo aos Backbones (linhas de altssima velocidade de conexo Internet).

2.4.1. Provedores Os provedores esto conectados Internet 24 horas por dia por meio dos backbones (espinha dorsal da Internet). Voc deve possuir uma assinatura (paga ou no) com o provedor para poder ter acesso a internet, assim o provedor disponibiliza um endereo nico para voc. Nos computadores do provedor voc tem tambm um espao para armazenar suas informaes e mensagens eletrnicas. 2.5. Tipos de Domnio Ao invs de decorarmos http://www.educandus.com.br http:// - protocolo www tipo de servio com tipo de domnio br pas No Brasil, para registrar um domnio precisamos entrar no site HTTP://www.registro.br. No site existe um local onde poderemos pesquisar um domnio. Caso esse domnio esteja disponvel para registro voc poder compr-lo. 3. Ambiente de desenvolvimento Para comearmos a programar precisamos definir nosso ambiente de desenvolvimento ou ambiente de trabalho. O ambiente de desenvolvimento nada mais que todos os softwares e aplicativos necessrios para ajudar o programador em seu trabalho. Seja na criao do seu sistema, na simulao em ambiente web ou na realizao de testes. 3.1. Sistemas necessrios para o desenvolvimento em PHP Para programar em PHP ser necessrio termos um servidor web rodando em nossa mquina, isso ser til para simularmos como nosso sistema estar funcionando quando o mesmo estiver disponvel na internet e para o armazenamento de dados no banco, necessitaremos tambm de uma IDE de desenvolvimento, esse, no sendo to essencial para seu desenvolvimento, mas extremamente til para acelerar o processo de desenvolvimento. os Ips, decoramos os domnios ou nomes:

9

Projeto E-JOVEM

3.2. Xampp Uma das sutes de desencolvimento mais utilizadas para PHP o XAMPP, que um pacote de aplicativos para desenvolvimento web em PHP, e alm de sua instalao ser muito fcil, sua usabilidade tambm . Sendo necessrio apenas baixar, extrair e inicializar. Alm disso, o XAMPP gratuito, esta livre para ser copiado nos termos da licena GNU - General Public License. Veja abaixo alguns dos aplicativos que j esto integrados ao XAMPP: APACHE Servidor web livre. PHP- Linguagem de programao. PERL Linguagem de programao. MYSQL - Linguagem de banco de dados. PHPMYADMIN - um programa de computador desenvolvido em PHP para administrao do MySQL pela Internet.

Esses so os aplicativos essenciais para simular um servidor web na sua mquina, assim ser possvel testar as aplicaes que sero criadas. Nesta apostila no vamos mostrar como instalar o XAMPP, pois existem muitas formas de se instalar o xampp, uma delas voc poder seguir usando as aulas no portal da educandus. 3.3. IDE de Desenvolvimento IDE - Integrated Development Environment (Ambiente Integrado de Desenvolvimento), um programa de computador que rene caractersticas e ferramentas de apoio aos desenvolvedores de software, cujo objetivo de agilizar o processo de produo. 3.4. Principais caractersticas de uma IDE As principais caractersticas de uma IDE com suporte a PHP so: Editar o cdigo fonte do sistema em desenvolvimento, colocar cores diferenciando variveis, palavras-chave, funes e etc. tornando fcil sua compreenso. Auxiliar no processo de encontrar e corrigir erros (bugs) no cdigo-fonte do programa, na tentativa de aprimorar a qualidade de software. Ajudar na utilizao de funes nativas da linguagem, completando automaticamente e mostrando os valores passados e retornados delas.

10

Projeto E-JOVEM

Na utilizao de Orientao a Objetos, a IDE auxilia na utilizao de mtodos das classes.

3.5. Qual IDE Utilizar ? Indicamos que voc utilize o ECLIPSE PDT, que alm de ser uma ide gratuita, atende a todos as necessidades do programador PHP. Veja abaixo como configurar seu ambiente de desenvolvimento: 1. Acesse o link: http://download.eclipse.org/tools/pdt/downloads/ 2. Procure pelo Release Build mais atualizado e clique no link 3. Ser carregada outra pgina, contendo o Release Build. 4. Procure por PDT All-in-One e baixe a verso para seu sistema operacional 5. Aps o download, descompacte o arquivo. 6. Pronto o eclipse PDT j pode ser usado. Para executar o eclipse, seguiremos os passos abaixo: 1. Clicamos no cone do eclipse. 2. Como a primeira vez em que estamos usando o eclipse. Ser necessrio definirmos o local do nosso Workspace (rea de trabalho). 3. Para definirmos nosso Workspace clicaremos no boto browser, abrir uma janela para selecionarmos o diretrio do nosso Workspace. OBS: ser necessrio escolhermos a pasta htdocs, que encontrasse dentro de lampp. Geralmenete no caminho /opt/lampp/htdocs. Esse o mesmo caminho onde ns instalamos o xampp. 4. Selecione a opo Use this as the default and do not ask again (use esse diretrio como default e no pergunte novamente) 5. Ser exibida a tela de boas vindas do eclipse PDT Obs.: Voc pode utilizar qualquer outra ide para o desenvolvimento PHP, voc deve apenas levar em considerao aquela que mais se adapta a seu estilo de trabalho.

11

Projeto E-JOVEM

4. Ambiente HTTP Como falamos anteriormente HTTP (Hypertext Transfer Protocol ou Protocolo de Transferncia de Hipertexto) um protocolo de comunicao utilizado para transferir dados por intranets e pela World Wide Web. Geralmente, esse protocolo utiliza a porta 80 e usado para a comunicao de stios web, comunicando na linguagem HTML. Ele surgiu da necessidade de distribuir informaes pela Internet. Para isso tornou-se necessrio uma forma de comunicao que tornasse padro comunicao entre cliente e servidor, tornando assim possvel de ser interpretada por todos os computadores ligados na Internet. 4.1. Funcionamento do HTTP O HTTP utiliza o modelo cliente-servidor, como na grande maioria dos protocolos de rede, baseando-se no paradigma de requisio e resposta. Um programa requisitante (cliente) estabelece uma conexo com um outro programa receptor (servidor) e envia-lhe uma requisio, contendo a URI, a verso do protocolo, uma mensagem MIME (padro utilizado para codificar dados em formato de textos ASCII para serem transmitidos pela Internet) contendo os modificadores da requisio, informaes sobre o cliente e, possivelmente, o contedo no corpo da mensagem. O servidor responde com uma linha de status (status line) incluindo sua verso de protocolo e um cdigo de operao bem sucedida ou um cdigo de erro, seguido pelas informaes do servidor, meta informaes da entidade e possvel contedo no corpo da mensagem. Aps o envio da resposta pelo servidor, encerra-se a conexo estabelecida. 4.2. Mensagem HTTP No protocolo HTTP a comunicao entre cliente e servidor feita atravs de mensagens: O cliente envia uma mensagem de requisio e o servidor uma de resposta ao cliente com a solicitao. Uma mensagem, tanto de requisio como de resposta, composta, por uma linha inicial, nenhuma ou mais linhas de cabealhos, uma linha em branco obrigatria que finaliza o cabealho e para finalizar o corpo da mensagem, que poder ser opcional em alguns casos.

12

Projeto E-JOVEM 4.2.1. Cabealho da Mensagem O cabealho da mensagem (header) utilizado para adicionar informaes na transmisso entre o cliente e o servidor. Sendo inserido logo aps a linha inicial da transao (mtodo), tanto para a requisio do cliente quanto para a resposta do servidor, seguido de dois pontos (:) e um valor.

4.2.2. Corpo da Mensagem Uma mensagem HTTP poder conter um corpo de dados que sero enviados abaixo das linhas do cabealho. Na resposta, essa mensagem poder conter o recurso que foi requisitado pelo cliente ou uma mensagem de erro, caso esse recurso no seja possvel. J numa requisio, poder conter dados que sero enviados pelo usurio ou um arquivo que ser enviado para o servidor. Quando uma mensagem HTTP tiver um corpo, podero ser includos cabealhos de entidades que descrevem suas caractersticas, como por exemplo, o Content-Type que informa o tipo MIME dos dados no corpo da mensagem e o Content-Length que informa a quantidade de bytes que o corpo da mensagem contm. Exemplos: text/plain text/html Image/gif Image/jpeg application/zip Descrio Arquivo no formato texto (ASCII) Arquivo no formato HTML, utilizado como padro para documentos Web Imagem com o formato GIF Imagem com o formato JPEG Arquivo compactado

13

Projeto E-JOVEM

4.3. Requisio Uma mensagem de requisio enviada pelo cliente composta por: Uma linha inicial (Request-Line) Linhas de cabealhos (Request-header) Linha em branco obrigatria Corpo da mensagem (opcional)

A linha inicial de uma requisio composta por trs partes separadas por espaos: O mtodo (Method) A identificao do URI (Request-URI) A verso do HTTP (HTTP-Version) utilizado.

No protocolo HTTP, o tipo de URI utilizado chamado de URL (Uniform Resource Locater), que composto pela identificao do protocolo, pelo endereo do computador servidor e pelo documento requisitado. 4.4. Mtodos O protocolo HTTP possui 8 mtodos que indicam a ao a ser realizada no recurso especificado. O mtodo o responsvel por determinar o que o servidor deve fazer com a URL fornecida no momento da requisio de um recurso. So eles: GET O mtodo mais comum. Solicita um recurso seja um arquivo ou um script CGI. O mtodo GET reconhecido por todos os servidores. HEAD o mesmo que GET, mas o recurso no ser retornado. usado para obter meta informaes por meio do cabealho da resposta, sem ter que recuperar todo o contedo. POST Envia dados que sero processados (por exemplo, formulrios HTML). Os dados so includos no corpo do comando.

14

Projeto E-JOVEM Uma requisio por mtodo POST requer sempre que: 1. As informaes submetidas sejam anexadas ao corpo da mensagem e formatadas como uma query string 2. Conter cabealhos adicionais especificando seu tamanho (ContentLenght) e seu formato (Content-Type). Por isso, esse mtodo oferece uma maior segurana em relao aos dados transferidos, ao contrrio do mtodo GET que os dados so anexados a URL, ficando visveis ao usurio. PUT Envia certo recurso. DELETE Exclui o recurso. TRACE - Ecoa o pedido, de maneira que o cliente possa saber o que os servidores intermedirios esto mudando em seu pedido. OPTIONS - Recupera os mtodos HTTP que o servidor aceita. CONNECT - Serve para uso com um proxy que possa se tornar um tnel SSL (um tnel pode ser usado, por exemplo, para criar uma conexo segura).

4.5. Resposta Uma mensagem de resposta composta pelos seguintes campos: Uma linha inicial (Status-Line). Linhas de cabealhos (Responseheader). Uma linha em branco obrigatria. Um corpo de mensagem opcional.

A linha inicial de uma resposta, chamada de linha de status, possui por sua vez trs partes separadas por espaos: A verso do protocolo HTTP (HTTP-Version). Um cdigo de status (Status-Code) da resposta, que fornece o resultado da requisio. Uma frase de justificativa (Reason-Phrase) que descreve o cdigo do status.

15

Projeto E-JOVEM

4.6. Os Cdigos de Retornos O Status-Line de uma resposta HTTP indica ao cliente se sua requisio foi bem sucedida ou no. Esta situao fornecida atravs de um cdigo de retorno (Status-Code) e uma frase explicativa. O cdigo de status formado formado por trs dgitos sendo o primeiro o digito que informa a classe que pertence. Existem cinco tipos: 1xx. Informao (Informational) utilizada para informar o cliente que sua requisio foi recebida e est sendo processada. 2xx. Sucesso (Success) indica que a requisio foi concluda com sucesso. 3xx. Redirecionamento (Redirection) informa a ao adicional que dever ser tomada para completar a requisio. 4xx. Erro no cliente (Client Error) informa que a requisio feita pelo cliente no poder ser atendida. 5xx. Erro no Servidor (Server Error) ocorreu um erro no servidor ao tentar cumprir uma requisio valida.

4.7. Outros Protocolos Existem outros tipos de protocolos como: FTP (File Transfer Protocol, ou Protocolo de Transferncia de Arquivos), usado para envio de arquivos do computador para um servidor na Web. SMTP (Simple Mail Transfer Protocol, ou Protocolo de Transferncia de Correio Simples), protocolo usado para correio eletrnico (e-mail).

16

Projeto E-JOVEM 4.8. Esquema de Comunicao

5. Estrutura do cdigo PHP Sitaxe Antes de tudo, uma aplicao PHP um pequeno conjunto de blocos bsicos de construo. O PHP foi construdo com a inteno de ser simples. A sintaxe php fcil de ser entendida, apesar de ser derivada de muitas outras linguagens como C, PERL e JAVA apartir das ultimas adies de orientao a objeto. Tags e Arquivos Fontes Arquivo PHP concebido como processador de texto, com isso pode ser inserido direto em arquivos de texto, utilizando para isso tags especiais o interpretador ir ento interpretar o texto fora das tags e executar os que se encontram dentro das tags. Alguns tipos de tags disponveis: Tag Padro Cdigo php 17

Tag Curta

Tag Script

Projeto E-JOVEM

A tag padro a melhor forma de abertura e fechamento de tag para se trabalhar com php, por deixar seu cdigo mais portvel e compatvel, porque garantida sua disponibilidade e no desativado ao mudar o arquivo de configurao do php. Porem a forma mais usada no mundo a tag curta elas no tem o problema de conflito com cabealhos XML. Outra grande vantagem e uma das mais usadas, a possibilidade da utilizao de uma impresso direta sem a necessidade da utilizao do print ou echo. Voc poder usar qualquer um dos tipos de tags, sabendo que em alguns casos poder ser necessrio configurar o php. Espao em branco PHP whitespace-insensitive Isso significa que no h exigncias para uso (ou no usar) um tipo especfico de caracteres branco (ex.: guias, em vez de espaos), ou um determinado nmero de caracteres branco, exceto em alguns casos:

Voc no pode ter nenhum espao entre .

20

Projeto E-JOVEM print( ): Retorna o valor mostrado. $valor = print "teste"; -> imprime teste na tela e coloca em $valor a string "teste". echo no retorna nada.

Observao: Ambos so construes da linguagem, portanto podem ser chamados com ou sem os parnteses, mas para enviar mais de um parmetro para echo, o uso de parnteses problemtico. 6.2. Usando aspas simples e aspas duplas A escolha do tipo de aspas usado com as funes de impresso (print e echo) fundamental, pois o resultado pode ser bastante diferente. Com aspas duplas (") podemos usar variveis e caracteres especiais, como \n (para criar uma quebra de linha), j entre aspas simples tudo literalmente impresso. Exemplo: Voc ver na tela que o textarea que usamos aspas simples ir imprimir o \n enquanto o com aspas duplas ir criar uma nova linha. Outra diferena entre aspas simples e duplas se faz no uso de variveis, ao imprimir uma varivel com aspas simples ns estaremos imprimindo a varivel em si. Ao imprimir com aspas duplas estaremos imprimindo o valor do dado que a varivel possui.

6.3. Integrando PHP com JAVASCRIPT Da mesma forma que podemos integrar PHP com HTML, podemos integrar PHP com javascript. Veja o exemplo abaixo:

OBS: como voc pde observar, podemos definir uma constante de forma errada, mas nunca iremos poder utiliz-la. 10. Operadores So usados para efetuarem operaes sobre as variveis e constantes. 10.1. Operadores de Comparao

So operadores que estabelecem uma relao de equivalncia entre dois valores. Eles tanto podem determinar se dois valores so iguais (ou no iguais) entre si, ou se um maior (ou menor) do que o outro. O resultado de uma operao comparao sempre um valor Booleano.

Existem quatro operadores de equivalncia:

==

=== != != =

Equivalentes. Verifica se os dois operandos so equivalentes, o que significa que eles podem ser convertidos para o tipo de dados comum que eles tm o mesmo valor, mais no necessariamente do mesmo tipo. Identidade. Verifica se os operandos possuem o mesmo Tipo e tm o mesmo valor. No Equivalentes. Verifica se os dois operandos so no equivalentes, sem verificar o seu tipo. Operador no-idnticos. Verifica se os dois operandos no possuem o mesmo tipo de dados ou no tm o mesmo valor.

Observao: muito fcil confundir o operador de atribuio (=) pelo operador de comparao (= =) e este , na verdade, um dos erros mais comuns na programao. Uma soluo parcial para este problema utilizar um padro de projetos em que o programador inverte a ordem de seus operandos quando se compara uma varivel com valor.

26

Projeto E-JOVEM Exemplo: echo $a = = 10; Voc poderia escrever: echo 10 = = $a; Estas duas operaes so totalmente idnticas, mas, devido esquerda do operador ser um valor, se tivesse esquecido um dos sinais iguais, o parser teria jogado um erro, assim, alertando-o. Veja abaixo o exemplo: 10.2. Outros Operadores de Comparao

Outros conjuntos de diferentes operadores estabelecem uma relao de desigualdade entre os dois operandos, ou seja, se um dos dois maior do que o outro: < >= Retorna true se o operando da esquerda for maior que o da direita. Retorna true se o operando da esquerda for maior ou igual ao da direita.

Observaes Sobre Operadores de Comparao Embora o processo seja claro para os nmeros, as coisas mudar um pouco para outros tipos de dados, por exemplo, strings so comparadas atravs da anlise do valor binrio de cada byte na seqncia, at dois valores diferentes so encontrados, o resultado ento determinado pelo valor numrico desses dois bytes. Por exemplo: O cdigo acima imprime um valor em branco (ou seja, falso), porque a letra D mais elevado na varivel da direita, do que na letra C da varivel da esquerda. Enquanto voc poderia pensar que esta comparao ocorre por causa da ordem alfabtica. Considere os seguintes exemplos: Neste exemplo ser impresso 1 (verdadeiro), pois o valor ASCII do caractere a 97 que por sua ver mais elevado que o caractere A que 65. OBS: A utilizao de operadores comparao com arrays tambm introduz um conjunto de regras diferentes.

28

Projeto E-JOVEM

10.3.

Operadores Lgicos

Operadores lgicos so usados para ligar valores booleanos em conjunto e obter um terceiro valor booleano em funo das duas primeiras. Existem quatro operadores lgicos em PHP das quais trs so binrias. O nico operador unrio o NO Lgico, identificado por uma exclamao antes do operando. importante compreender que todos os operadores lgicos trabalham apenas com valores booleanos. Por isso, o PHP ir converter primeiro para valor Booleano e, em seguida, executar a operao. Os trs operadores binrios so: && AND || / OR XOR ! / Retornar true caso os operandos da direita E esquerta do operador retornem true. Retornar true caso um dos operandos o da direita OU o da esquerda retornar true. Podendo ser ambos. O ou exclusivo retornar true se o um dos operandos o da direita OU o da esquerda retornar true, mais no ambos. Operador lgico no, invertendo o resultado de um teste.

Observao Sobre Operadores Lgicos importante saber que o PHP tem uma simples estratgia para avaliar os resultados. Por exemplo, se a esquerda do operando && (AND) a operao for avaliada como false. Automaticamente ser retornado false, j que qualquer outro resultado no mudar essa condio.

29

Projeto E-JOVEM

10.4.

Operadores Matemticos

Operadores matemticos so os responsveis pelas operaes matemticas bsicas. Adio Subtrao Multiplicao Diviso Modulo $a = 1 + 3.5; $a = 4 - 2; $a = 8 * 3; $a = 15 / 5; $a = 23 % 7;

OBS: Lembre-se que alguns operadores matemticos (por exemplo, o operador de adio) assumem um significado diferente quando aplicados a arrays. 10.4.1. Clculos complexos Em clculos complexos, procure sempre utilizar parnteses, sempre observando as prioridades aritmticas. Por exemplo: 10.4.2. Converso entre tipos em operaes O PHP realiza automaticamente a converso de tipos em operaes 10.5. Operadores de incrementao e decrementao

Formam uma categoria especial de operadores, com eles possvel incrementar e decrementar valores inteiros. Eles so operadores unrios, porque eles s aceitam um operando (ou seja, a varivel que necessita ser incrementado ou decrementado), e podem mudar de comportamento, dependendo se forem usadas antes ou depois da varivel.

30

Projeto E-JOVEM

10.5.1. Posio do operador de incrementao e decrementao A posio do operador determina se o ajuste ser realizado antes, ou depois da devoluo do valor:

Se o operador estiver depois do operando, o interpretador ir primeiro retornar o valor atual da varivel e depois incrementar ou decrementar o valor. Se o operador estiver antes do operando, o interpretador ir primeiro incrementar ou decrementar o valor, e depois retornar o valor.

Uso em excesso desse operador pode tornar seu cdigo de compreenso difcil, at os melhores programadores algumas vezes so surpreendidos pelo uso desse operador. Por isso use-o com cautela. Vale a pena ressaltar tambm que esse operador deve ser utilizado para valores numricos. 10.6. Referenciando variveis

Por padro, os operadores trabalham pela atribuio de valor, ou seja, eles copiam o valor de uma expresso para outra. Se do lado direito do operando for uma varivel, somente seu valor ser copiado, de modo que qualquer alterao subseqente ao da esquerda do operador no ser refletindo no operador da direita. Por exemplo: Normalmente, voc espera que esse seja o resultado obtido, mais a casos em que voc queira uma tarefa que o resultado seja obtido por referncia, de modo que a expresso da esquerda do operando torna-se ligado com a expresso da direita. Por exemplo: Observaes sobre referncia de variveis O operador trabalha pela atribuio de valor para todos os tipos de dados, exceto objetos, os quais sempre so passados por referncia, independentemente do operador & ser usado ou no. A utilizao de variveis por referncia usada algumas vezes pode ser at til, mas sempre ser uma tcnica PHP bastante arriscada, porque variveis PHP tendem a permanecer ativas por um longo perodo de tempo, at mesmo dentro de uma funo.

Alm disso, contrariamente ao que acontece em muitas outras lnguas, essa tcnica muitas vezes mais lenta do que a atribuio de valor, porque o PHP usa uma inteligente deferredcopy mecanismo que otimiza a realidade de valor atribuies. 11. Estruturas de ControleNo PHP, as estruturas de controle so formadas por declaraes condicionais e de looping:

11.1.

Estruturas condicionais

Estrutura condicional usada para alterar o fluxo de uma execuo baseado em uma ou mais condies. A maior parte destas estruturas bsicas o se-ento-seno (if-else-elseif) que executa uma das duas declaraes (ou conjuntos de declaraes fechados em um bloco de cdigo), dependendo se uma condio verdadeira ou falsa.

32

Projeto E-JOVEM IF: Executa uma ao se uma condio for atendida. O bloco de comandos a ser executado deve ser escrito entre chaves; ELSE: Ele utilizado para indicar um novo bloco de comando caso a condio do IF no seja satisfeita. ELSE IF: Podemos analisar diversas condies possveis: