




















Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
apostila PHP
Tipologia: Notas de estudo
1 / 28
Esta página não é visível na pré-visualização
Não perca as partes importantes!





















Capítulo 1
Revisão de PHP
Este é um livro que aborda tópicos avançados da linguagem PHP (www.php.net). Porém, para você que teve pouco ou nenhum contato com essa linguagem, este capí- tulo será de grande importância. Ele contém uma revisão de PHP, apresentando sua sintaxe básica e ensinando a utilizar constantes, variáveis, operadores e estruturas de controle (comoif,switch,while efor). Além disso, será mostrado como realizar ope- rações sobre um banco de dados MySQL, que é um sistema bastante utilizado com o PHP. Se você já for um programador mais experiente, pode passar diretamente ao próximo capítulo.
Iniciando em PHP
Um programa PHP pode ser escrito em qualquer editor de texto, como por exemplo o Bloco de Notas (Notepad) do Windows ou o VI do Linux. Já existem também diver- sos editores específicos para o PHP, que exibem cada elemento (variáveis, textos, palavras reservadas etc.) com cores diferentes, para melhorar a visualização.
Um trecho de código PHP deve estar entre as tags, para que o servidor Web possa reconhecer que trata-se de um código de programação e possa chamar o inter- pretador PHP para executá-lo. Para começar a treinar, abra o editor de texto de sua preferência e digite as linhas a seguir. Este é meu primeiro programa!”; ?>
Salve esse programa comoprog1.php e envie-o para o diretório que você está utili- zando para hospedar o site. Esse programa vai gerar como resultado a frase “Este é meu primeiro programa!” centralizada na página, conforme mostrado na figura 1.1. Para ver o resultado, basta você acessar pelo navegador (browser) o endereçohttp:/ //prog1.php, onde você deve substituir pelo ende- reço do servidor que está utilizando para executar os programas PHP.
Embutindo PHP na HTML
Normalmente uma página PHP não contém apenas códigos de programação PHP, mas também tags de marcação HTML. Enquanto o PHP representa a parte dinâmica da página, a HTML representa a parte estática. Ou seja, toda vez que você acessar a página, a saída HTML será a mesma, enquanto que a saída gerada pelos códigos PHP pode ser diferente a cada acesso. As tags HTML devem aparecer fora das tags, pois estas delimitam um trecho de programa PHP. Dentro dessas tags até podem aparecer tags HTML, mas somente se utilizarmos um comando de exibição (como oecho) para escrevê-las. Você pode concatenar scripts PHP com tags HTML, podendo dessa forma, escrever vários trechos de código PHP em uma única página. Cada script PHP existente na página deve começar com a tag. A maioria das linhas de programação que serão escritas entre as tags deve terminar com o caractere ; (ponto- e-vírgula), senão ocorrerão erros no momento da execução da página. Entre essas tags você pode escrever programas, utilizando todos os recursos que o PHP lhe ofe- rece, como definição e chamada de funções, acesso a banco de dados, atribuição de valores a variáveis, fórmulas matemáticas etc. Essa combinação entre HTML e PHP é muito útil, pois nós utilizamos o PHP para gerar os dados de forma dinâmica, enquanto que o HTML é utilizado para formatar e exibir esses dados nas páginas mostradas no navegador. Vamos ver um exemplo que mistura HTML e PHP para mostrar a data atual. Digite o seguinte programa em seu editor de textos, e salve-o comoprog2.php:
Hoje é dia
Note a combinação existente entre as tags HTML e o código PHP. No início do progra- ma atribuímos a data atual à variável$data_de_hoje , utilizando o comandodate. Essa variável estará disponível para uso em qualquer parte da página. Depois utilizamos HTML para escrever a frase “Hoje é dia”, e completamos abrindo um novo trecho de PHP, escrevendo a data atual armazenada na variável$data_de_hoje por meio do comandoecho.
Exibindo a página no navegador
Para o navegador mostrar alguma coisa na tela é necessário que a página tenha pelo menos um comando de exibição (como oecho) para escrever algo, ou então coman- dos HTML que escrevam o conteúdo da página. Porém, somente se for usado o co-
mandoecho ou algum outro comando PHP que produza uma saída na tela, você realmente terá informações dinâmicas, pois o HTML é estático, imprime sempre as mesmas informações na tela. Veja o seguinte exemplo:
Salve esse programa comoprog3.php e veja o resultado em seu navegador. Perceba que não há nenhum comandoecho no programa, por isso seu navegador mostrará uma tela em branco. Os valores atribuídos às variáveis ficaram armazenados apenas na memória, mas não foram mostrados na tela. Ao visualizar o código-fonte recebido pelo navegador, você verá apenas as tags do HTML:
Vejamos agora um exemplo parecido com o anterior, mas dessa vez vamos utilizar o comandoecho para mostrar informações na tela. Digite o seguinte programa em seu editor de textos e salve-o comoprog4.php:
$frase”; ?>
Abrindo essa página em seu navegador, você obterá o resultado exibido na figura 1.2:
Note que no exemplo que acabamos de ver, referenciamos as constantes diretamente pelo nome que escolhemos, e não utilizamos na frente delas o símbolo $, pois esse símbolo é utilizado apenas para representar variáveis.
Outro recurso que utilizamos neste exemplo foi a concatenação, representada pelo ponto (.). Podemos concatenar quantos dados quisermos, e todos eles serão exibidos como apenas uma seqüência de caracteres.
Além de você poder definir suas próprias constantes, o PHP já possui diversas cons- tantes predefinidas. A tabela a seguir mostra algumas:
Constante Descrição TRUE Valor verdadeiro (utilizado para comparação). FALSE Valor falso. FILE Contém o nome do script que está sendo executado. LINE Contém o número da linha do script que está sendo executado. PHP_VERSION Contém a versão corrente do PHP. PHP_OS Nome do sistema operacional no qual o PHP está rodando. E_ERROR Exibe um erro ocorrido em um script. A execução é interrompida. E_WARNING Exibe uma mensagem de aviso do PHP. A execução não pára. E_PARSE Exibe um erro de sintaxe. A execução é interrompida. E_NOTICE Mostra que ocorreu algo, não necessariamente um erro. A execução não pára.
Variáveis
As variáveis servem para armazenar dados que podem ser usados em qualquer ponto do programa. Cada variável está associada a uma posição de memória de seu computador.
Ao contrário de linguagens tradicionais, como C, Pascal e Delphi, no PHP não é neces- sário fazer declaração de variáveis. Basta atribuir diretamente um valor a ela, e a partir desse momento ela já estará criada e associada a um tipo (numérico, alfanumérico etc.), dependendo do valor que lhe foi atribuído.
Já vimos que em PHP as variáveis devem iniciar com o símbolo $. Após esse símbolo deve vir o identificador da variável, ou seja, o nome pelo qual ela será referenciada durante a execução do programa. Esse identificador não pode iniciar com um núme- ro. Os números podem aparecer em qualquer posição do identificador, menos na primeira. Exemplos de variáveis válidas e inválidas:
Válidas $nota $casal $bisc $gremio_2_vezes_campeao_america
Inválidas $100vergonha $ $20assustar $60nacadeira
É recomendável que você utilize sempre identificadores com letras minúsculas, pois o PHP faz a distinção entre maiúsculas e minúsculas. Se você começar a misturar os dois tipos de letras, pode ocorrer uma confusão na utilização da variável, já que $nota_aluno não é a mesma coisa que $Nota_aluno.
Imagine se um aluno tirou nota 10, e esse valor foi armazenado na variável $nota_aluno. Na hora de imprimir a nota do aluno, você digita a seguinte linha:
O aluno será reprovado, pois você imprimiu a variável errada. Portanto tome cuida- do: o PHP distingue letras maiúsculas e minúsculas para nomes de variáveis.
Escopo das variáveis
Em relação ao escopo, quando uma variável é utilizada dentro de uma função, pode haver uma outra variável com o mesmo nome que é utilizada em outra função, ou no código do programa principal. São espaços de memória diferentes, e cada um funci- ona dentro do seu contexto, ou seja, a variável definida dentro da função só pode ser acessada ali dentro. Fora dali seu valor não é acessível em nenhuma outra parte do programa.
No entanto, é possível usar dentro de uma função o valor de uma variável existente também no programa principal, e para isso há duas formas:
defini-la como global no início da função;
utilizar o array predefinido $GLOBALS, que utiliza os nomes das variáveis como chave associativa.
Como exemplo, acompanhe o programaprog6.php.
7 prog6.php ”;
Arrays
As variáveis comuns (também chamadas de variáveis escalares) podem armazenar apenas um valor por vez. Um array (vetor) pode armazenar vários valores ao mesmo tempo, pois trata-se de uma estrutura de armazenamento que, assim como as variá- veis, possui um identificador, mas além disso há um índice associado (que pode ser um número ou um texto), e cada índice indica uma posição de memória em que fica armazenado um elemento do array. O índice deve aparecer entre colchetes ([]) logo após o identificador do array.
Vamos ver um exemplo para você entender melhor o conceito de array: na entrada de um edifício há um daqueles armários com diversas gavetas para guardar correspon- dências, uma para cada apartamento. Podemos comparar o armário com o array, e os apartamentos com os índices do array. Ou seja, existe apenas um nome identificador, que é o armário, mas, se um morador do edifício chega para pegar suas correspon- dências, ele deve acessar a gaveta correspondente ao seu índice, que é o número do seu apartamento.
Os arrays são muito úteis quando precisamos realizar automatização de tarefas em nossos programas. Imagine que os nomes de todos os moradores de um edifício de- vem ser mostrados na tela.
Obviamente não seria viável que utilizássemos variáveis escalares para armazenar os nomes. Se fossem 60 nomes, teríamos 60 variáveis, e para mostrar os valores na tela deveríamos usar 60 vezes o comandoecho. Mas se os nomes dos 60 moradores esti- vessem guardados em um array, bastaria que utilizássemos um comando de repeti- ção (que veremos mais adiante) para imprimir desde a primeira posição do array até a última, ou seja, variando o índice de 0 até 59. Veja a seguir alguns exemplos de armazenamento em arrays: $vetor[0] = 30; $vetor[1] = 40; $vetor[5] = 50; $vetor[15] = 60;
Se não colocarmos o índice do vetor entre colchetes, o PHP irá procurar o último índice utilizado e incrementá-lo, armazenando assim o valor na posição seguinte do array, conforme mostra o exemplo a seguir: $vet[ ] = “Grêmio”; $vet[ ] = “Campeão”; Nesse exemplo teremos o valor “Grêmio” armazenado em $vet[0] e o valor “Cam- peão” armazenado em$vet[1].
Até agora só vimos exemplos em que o índice do array é um valor numérico, mas o índice também pode ser um texto, e nesses casos o texto é chamado de chave associ- ativa.
$vetor[“time”]=“Grêmio”; $vetor[“titulo”] = “Tetracampeão da Copa do Brasil”; $vetor[“ano”]=2001;
Repare que cada posição do array pode ser de um tipo diferente. Os valores das posições referenciadas por time e título são do tipo string, mas o valor da posição referenciada por ano é numérico. Outra coisa que pode acontecer é o array possuir índices numéricos e strings ao mesmo tempo. Não há problema nenhum em usar os dois tipos de índices no mesmo array.
Existem também as matrizes, que são arrays multidimensionais. Essas estruturas de armazenamento também possuem um único identificador, mas possuem dois ou mais índices para referenciar uma posição de memória. Imagine que queremos armazenar na memória os nomes dos melhores clubes do futebol brasileiro, separando-os por Estados e cidades. Podemos fazer isso utilizando um array bidimensional, como mos- tra o exemplo a seguir: $clube [“RS”] [“PortoAlegre”] = “Grêmio”; $clube [“RS”] [“Caxias”] = “Juventude”; $clube [“RS”] [“BentoGoncalves”] = “Esportivo”; $clube [“MG”] [“BeloHorizonte”] = “Atlético”; $clube [“MG”] [“NovaLima”] = “Vila Nova”; $clube [“MG”] [“Ipatinga”] = “Ipatinga”; $clube [“SP”] [“SaoPaulo”] = “Corinthians”; $clube [“SP”] [“Americana”] = “Rio Branco”;
Esse exemplo mostra um array bidimensional, mas podemos usar arrays com mais de duas dimensões, bastando acrescentar mais colchetes com seus respectivos índices. Outra forma de criar um array é por meio da funçãoarray do PHP. Veja o exemplo prog8.php, apresentado a seguir:
7 prog8.php
”; $vet = array (1, 2, 3, ”nome”=>”Joaquim”); echo $vet[0]. “”; echo $vet[“nome”]; ?>
Após a execução desse programa os resultados mostrados na tela serão os seguintes: 100 1 Joaquim
Lembre-se de que o array é iniciado na posição 0 (zero), por isso, apesar de ser o terceiro elemento do array, o 100 foi o primeiro valor mostrado, pois seu índice é 2. Depois foi criado um array que possui índices numéricos e também uma chave associ- ativa. Com o uso do comandoecho mostramos na tela os valores de duas posições desse array.
Aritméticos
Utilizando esses operadores, você poderá efetuar qualquer operação matemática com dados do tipo numérico, como, por exemplo, somar, subtrair, multiplicar, dividir etc. Confira a tabela com os operadores aritméticos do PHP:
Operador Operação
O PHP possui também outros operadores aritméticos, que atuam em apenas um ope- rando. Esses operadores são bastante úteis, pois nos permitem realizar de forma sim- ples operações, como troca de sinal, incremento ou decremento de valor etc.
Se você já programou em linguagem C, deve lembrar do incremento utilizando o operador ++. No PHP também é possível utilizá-lo. Vamos conhecer todos esses ope- radores com a tabela a seguir:
Operador Descrição
Os operadores mostrados nesta tabela também são conhecidos como operadores uná- rios, pois necessitam apenas de um operando, ao contrário da adição, subtração e outras operações que necessitam de pelo menos dois operandos.
Por exemplo, se o objetivo for somente incrementar o valor de uma variável, pode-se simplesmente digitar o nome da variável seguida do operador ++.
Exemplo: $contador++;
Na verdade esses operadores que acabamos de ver deixam seu programa muito mais simples em PHP, pois com o uso deles você pode fazer em apenas uma linha de código o que faria em duas ou mais linhas se não os usasse. Entendendo como eles funcionam, seus códigos ficarão mais simples e claros.
Binários
Esses operadores atuam em um nível de abstração bem mais baixo: trabalham direta- mente com bits. Podem ser utilizados para fazer comparações binárias (bit a bit), in- verter os bits de um operando, deslocar bits para direita (cada deslocamento para a direita equivale a uma divisão por 2) ou esquerda (cada deslocamento para a esquer- da equivale a multiplicar o número por 2). Em alguns casos é interessante usar os operadores binários. Veja a tabela a seguir para conhecê-los:
Operador Descrição ~ op1 Inverte os bits de op1. op1 & op2 Operação E (AND) bit a bit. op1 | op2 Operação OU (OR) bit a bit. op1 ^ op2 Operação OU exclusivo (XOR). op1 >> n Desloca op1 n bits à direita. op1 << n Desloca op1 n bits à esquerda.
Veja um exemplo:
7 prog10.php
> 1; // desloca 1 bit para direita echo $deslocado; ?>
No exemplo apresentado, o valor 50 (que equivale a 110010 na base binária) é deslocado um bit a direita, o que equivale a dividi-lo por 2. O resultado escrito na tela será a divisão de 50 por 2, que dá 25 (equivalente na base binária a 11001).
Perceba que o número que vem após o operando >> representa o número de bits que o operando será deslocado para a direita. Portanto se tivermos o número 2, o número será dividido por 4 (duas divisões sucessivas por 2). Se após o operador >> houver um númeron, estaremos dividindo o operando por 2 n^.
Comparação
Também chamados de condicionais. São aqueles que executam comparações entre o valor de duas variáveis, ou de uma variável e um texto, ou uma variável e um número. Com eles podemos testar, por exemplo, se uma variável possui um valor maior que a outra ou se possui um valor maior que determinado número, ou se o retorno dado pela chamada de uma função é verdadeiro ou falso. Veja a tabela a seguir:
Vamos ver um exemplo envolvendo operadores de atribuição:
7 prog11.php
Como você pode ver pelos comentários do programa, o valor que será mostrado na tela é zero. O último operador utilizado (%=) representa o resto da divisão (em outras linguagens é chamado de MOD). Dividindo 900 por 100 temos como resultado exa- to 9, portanto o resto da divisão é zero. No exemplo anterior utilizamos os operado- res +=, *= e %= para atribuir à variável $soma resultados de operações realizadas entre a própria variável $soma e outro operando. Perceba que o código fica bem mais claro e fácil de entender com o uso desses operadores de atribuição.
Lógicos
São aqueles que retornam o valor verdadeiro ou falso. Veja a tabela:
Operador Descrição ! op1 Verdadeiro se op1 for falso. op1 AND op2 Verdadeiro se op1 E op2 forem verdadeiros. op1 OR op2 Verdadeiro se op1 OU op2 forem verdadeiros. op1 XOR op2 Verdadeiro se só op1 ou só op2 for verdadeiro. op1 && op2 Verdadeiro se op1 E op2 forem verdadeiros. op1 || op2 Verdadeiro se op1 OU op2 forem verdadeiros.
Depois de observar essa tabela, você provavelmente está com dúvidas quanto à diferen- ça entre os operadores AND e &&, e também os operadores OR e ||. A diferença entre eles é a precedência dos operadores na avaliação de expressões. A precedência mais alta é dos operadores && e ||, enquanto os operadores AND e OR possuem precedência mais baixa. Por isso, tome muito cuidado ao usá-los, pois podem gerar resultados diferentes, dependendo da ordem em que forem colocados. Veremos mais diante um tópico especial sobre precedência de operadores.
Um exemplo típico no qual usamos operadores lógicos é o caso de testar se todos os campos obrigatórios de um formulário foram preenchidos. Suponha que tenhamos um formulário em que os campos nome, e-mail e CPF são obrigatórios. Certamente no programa que recebe os dados do formulário haveria um teste, como o mostrado no trecho de programa a seguir:
Nesse exemplo temos uma expressão sendo avaliada. A função empty(), que significa vazio em português, retorna verdadeiro se a variável estiver vazia, e falso se houver algo na variável. Então estamos testando se a variáveil$nome está vazia ou a variável $email ou a variável$cpf está vazia. Se pelo menos uma das três estiver vazia o resul- tado será verdadeiro, e isso fará com que seja impressa a mensagem “Você deve pre- encher os campos nome, e-mail e CPF!”, e logo após o programa será encerrado por meio do comando exit.
Acompanhe as tabelas a seguir para ver os resultados gerados em cada um dos opera- dores de acordo com o tipo de expressão avaliada:
OperOperOperOperOperador AND (E)ador AND (E)ador AND (E)ador AND (E)ador AND (E)
Exp1 Exp2 Resultado V V V V F F F V F F F F
Operador OR (OU)Operador OR (OU)Operador OR (OU)Operador OR (OU)Operador OR (OU)
Exp1 Exp2 Resultado V V V V F V F V V F F F
OperOperOperOperOperador Xador Xador Xador Xador XOR (OU exclusivo)OR (OU exclusivo)OR (OU exclusivo)OR (OU exclusivo)OR (OU exclusivo)
Exp1 Exp2 Resultado V V F V F V F V V F F F
Operador Descrição (cont.)
É importante lembrar que primeiro o PHP executará todas as operações que estiverem entre parênteses. Se dentro dos parênteses houver diversas operações, a precedência de operadores será usada para definir a ordem. Depois de resolver todas as operações que aparecem entre parênteses, o PHP resolverá o resto da expressão baseando-se na tabela anterior para determinar a ordem de avaliação dos operadores.
Quando houver operadores de mesma prioridade em uma mesma expressão, e não existirem parênteses, o PHP resolverá a expressão da esquerda para a direita.
Observe o seguinte trecho de programa:
7 prog12.php ”; echo $resultado; ?>
O resultado mostrado na tela será: 6 20
Observe que o operador ++ tem prioridade mais alta que os operadores + e *, por isso a primeira operação realizada pelo PHP foi o incremento do valor da variável $num. O segundo operador de maior prioridade no exemplo apresentado é o de multiplica-
ção, portanto a segunda operação realizada foi 3*2. Após essas duas operações, ficamos com a soma 8+6+6. Note que temos dois operadores iguais (de adição), portanto, como têm a mesma prioridade, a expressão é avaliada da esquerda para a direita: 8+6 = 14. E depois 14+6 = 20, que foi o resultado mostrado na tela.
Analisando esse exemplo, você pode perceber a importância da precedência dos opera- dores. Muitas vezes o uso incorreto dessas informações causa a exibição de resultados errados na saída dos programas.
Estruturas de controle em PHP
São comandos comuns à maioria das linguagens de programação, e o uso deles é fundamental para realizar decisões lógicas, testar se determinada expressão é verda- deira e repetir um bloco de comandos por um certo número de vezes ou até que uma condição seja atingida. Veremos os seguintes comandos:
§§§§§ Comandos condicionais:if eswitch.
§§§§§ Comandos de repetição:while,do...while,for eforeach.
Vamos ver então como utilizar cada um deles.
if
Comando que avalia uma expressão e, dependendo do resultado, é executado um conjunto diferente de instruções. O comandoif pode possuir como complemento o elseif e/ou oelse. Observe a sintaxe do comandoif:
If (((((exp1 ))))) {{{{{ bloco1 }}}}} elseif (^) (((((exp2 (^) ))))) {{{{{ bloco2 }}}}} else {{{{{ bloco3 }}}}}
Podemos ler essa sintaxe da seguinte maneira:
§§§§§ seexp1 for verdadeira, executebloco1;
§§§§§ senão seexp2 for verdadeira, executebloco2;
§§§§§ senão executebloco3.
É importante lembrar que apenas um dos blocos será executado, e depois disso a execução continuará após o comandoif.