FUNDAMENTOS DA LINGUAGEM PHP

UI MARIA LENIR ARAÚJO MENESES Aula 03: FUNDAMENTOS DA LINGUAGEM PHP – Unidade IV Aluno: Prof° Esp. Leonardo Delgado Data: FUNDAMENTOS DA LINGUAGEM ...
1 downloads 2 Views 788KB Size
UI MARIA LENIR ARAÚJO MENESES Aula 03: FUNDAMENTOS DA LINGUAGEM PHP – Unidade IV Aluno:

Prof° Esp. Leonardo Delgado

Data:

FUNDAMENTOS DA LINGUAGEM PHP

PHP (um acrônimo recursivo para "PHP: Hypertext Pre-processor", originalmente Personal Home Page) é uma linguagem interpretada livre, usada originalmente apenas para o desenvolvimento de aplicações presPentes e atuantes no lado do servidor, capazes de gerar conteúdo dinâmico na World Wide Web. Por ser uma linguagem interpretada, é necessária a instalação de um interpretador no servidor da aplicação que irá interpretar as instruções da linguagem e retornar o resultado no formato de uma página HTML para o navegador do usuário. A linguagem PHP é uma linguagem “Open Source”, ou seja, pode ser utilizada por qualquer usuário sem a necessidade de compra de licença para utilização e desenvolvimento de aplicações. Também pode ser considerada como uma linguagem multiplataforma, pois o interpretador da linguagem tem compatibilidade com mais de um sistema operacional. Essas características são as principais motivações que fazem com que a linguagem seja cada vez mais popular entre os desenvolvedores de aplicações para a Internet. É possível instalar o PHP na maioria dos sistemas operacionais, gratuitamente. Concorrente direto da tecnologia ASP pertencente à Microsoft, o PHP é utilizado em aplicações como o MediaWiki, Facebook, Drupal, Joomla, WordPress, Magento e o Oscommerce. Criado por Rasmus Lerdorf em 1995, o PHP tem a produção de sua implementação principal, referência formal da linguagem, mantida por uma organização chamada The PHP Group. O PHP é software livre, licenciado sob a PHP License, uma licença incompatível com a GNU General Public License (GPL) devido a restrições no uso do termo PHP.

/

/

Vantagens da Linguagem PHP As principais vantagens da linguagem são: • É livre de licença – utilização gratuita; • É multiplataforma, podendo ser utilizada na maioria dos sistemas operacionais – sistemas operacionais mais populares; • A grande maioria dos provedores externos – empresas que vendem espaço para armazenamento de sites e aplicações na Internet – possuem a instalação do interpretador do PHP em seus servidores; • Possui muitos recursos distribuídos em bibliotecas de fontes nas comunidades livres – recursos que auxiliam no desenvolvimento das aplicações; • A comunidade livre de PHP está sempre desenvolvendo e distribuindo novos recursos nas bibliotecas de fontes para os desenvolvedores; • A linguagem tem suporte e integração com os bancos de dados mais populares como MySQL, SQL Server, Oracle, DB2, entre outros; • Permite o desenvolvimento de aplicações dinâmicas com recursos como: envio de e-mails, autenticação de usuários, conteúdo dinâmico entre outros. Além das vantagens citadas acima, a linguagem também tem um diferencial importante em relação às demais: é uma linguagem de fácil aprendizagem.

Rodando Pagina Php em seu Computador Os primeiros passos para iniciar o desenvolvimento de aplicações com a linguagem PHP é a preparação do ambiente de desenvolvimento. Para isso, certifique se de que você tem os requisitos mínimos e o ambiente do PHP instalado em seu computador. O ambiente de desenvolvimento do PHP é composto de um servidor WEB, responsável pelo armazenamento e publicação das páginas, e o interpretador da linguagem PHP. O servidor WEB mais utilizado pelos desenvolvedores PHP é o Apache, que é um servidor gratuito, mas o PHP também pode ser configurado em outros servidores WEB como o IIS da Microsoft. Além disso, o ambiente de desenvolvimento pode também ser composto de um gerenciador de banco de dados (Exemplo: phpmyadmin) para o armazenamento dos dados da aplicação dinâmica. O banco de dados MySQL é o favorito para o desenvolvimento de aplicações para Internet com PHP.

Leonardo de A. Delgado

Para facilitar a configuração do ambiente de desenvolvimento, existe atualmente uma ferramenta chamada WampServer (Veja Aula 01) que permite a instalação e configuração de todo o ambiente de desenvolvimento PHP. Para que o nosso navegador de internet (Internet Explorer, Mozilla, Netscape, etc.) possa executar páginas escritas em PHP. Com o WampServer instalado é possível rodar códigos que geram páginas HTML dinamicamente, e então, mandá-las para o Browser.

Clique no ícone do Wamp e selecione a opção localhost, se aparecer uma tela conforme a imagem abaixo, quer dizer que o seu Wamp está instalado corretamente.

A forma mais simples é a seguinte: 1. Copie seus arquivos PHP (com extensão .php) para a pasta: C:\wamp\www; 2. Para executar seus arquivos PHP, abra o seu navegador de internet (Internet Explorer ou Mozila) e digite o seguinte endereço: http://localhost/index.php. Onde index deve ser o nome do seu arquivo PHP. Lembre-se de que as páginas PHP devem ser roda a partir do servidor, logo, você não poderá solicitar um arquivo .php digitando seu caminho físico. Depois de o arquivo ter sido carregado no seu navegador, você notará que o servidor retornou uma página HTML. À primeira vista, isso poderá parecer estranho, mas lembre-se de que o servidor analisa e executa todos os scripts PHP do lado do servidor antes de enviar o arquivo. O usuário receberá sempre a página HTML padrão. Testando o Servidor Web local Ao instalar o Wampserver, observe que no canto inferior direito da sua tela aparecerá um ícone semelhante a este da figura a baixo. Ele indica que o WampServer está ativo.

Quando o Wamp está ativo sua máquina se torna um servidor Web para acesso local. Faça o seguinte teste:

Observe que, basta abrir o browser e digitar http://localhost no campo de endereços.

Sintaxe Básica aplicações Grande parte das desenvolvidas em PHP possui a seguinte estrutura: • Interface com o usuário: aparência da aplicação representada pela parte HTML com imagens e textos estáticos e/ou dinâmicos; • Scripts com instruções em PHP: representando a lógica de negócio da aplicação; • Integração com banco de dados: representando os dados dinâmicos que serão disponibilizados na aplicação. Essa estrutura também é utilizada em aplicações desenvolvidas com outras linguagens, pois esse é um padrão seguido por grande parte de desenvolvedores de aplicações para a Internet. Portanto, é importante lembrar que, além de utilizarmos a linguagem PHP para desenvolvermos aplicações dinâmicas, também devemos conhecer os componentes básicos da linguagem HTML e os conceitos básicos de banco de dados.

Leonardo de A. Delgado

Delimitando o código PHP O código PHP fica embutido no próprio HTML. O interpretador identifica quando um código é PHP pelas seguintes tags: Separador de instruções Entre cada instrução em PHP é preciso utilizar o ponto-e-vírgula, assim como em C, Perl e outras linguagens mais conhecidas. Na última instrução do bloco de script não é necessário o uso do ponto-e-vírgula, mas por questões estéticas recomenda-se o uso sempre. Nomes de variáveis Toda variável em PHP tem seu nome composto pelo caracter $ e uma string, que deve iniciar por uma letra ou o caracter “_”. PHP é case sensitive, ou seja, as variáveis $vivas e $VIVAS são diferentes. Por isso é preciso ter muito cuidado ao definir os nomes das variáveis. É bom evitar os nomes em maiúsculas, pois como veremos mais adiante, o PHP já possui alguma variáveis pré definidas cujos nomes são formados por letras maiúsculas. Exemplo: Comentários Há dois tipos de comentários em código PHP: Comentários de uma linha: Marca como comentário até o final da linha ou até o final do bloco de código PHP – o que vier antes. Pode ser delimitado pelo caracter “#” ou por duas barras ( // ). Exemplo: Comentários de mais de uma linha: Tem como delimitadores os caracteres “/*” para o início do bloco e “*/” para o final do comentário. Se o delimitador de final de código PHP (?>) estiver dentro de um comentário, não será reconhecido pelo interpretador, causando um Parse error (erro de Sintaxe)

Exemplos: */

Imprimindo código na tela Como já vimos nos exemplos anteriores, utilizamos o comando: print para imprimir o resultado das instruções na tela do navegador. Em PHP existem dois comandos que permitem imprimir textos e códigos na tela: • print • echo Ambos possuem a mesma função: imprimir na tela, e não existe nenhum tipo de distinção entre eles, portanto, em seus códigos, você poderá utilizar o comando que lhe parece mais agradável.

Criando os primeiros scripts Primeiro Exemplo Neste exemplo, criaremos um script com uma saída simples, que servirá para testar se a instalação foi feita corretamente: http-equiv="Content-Type" Aprendendo PHP No Diretório de documento Apache crie uma pasta, em nosso caso chamaremos de Estudo, salve o arquivo como “index.php”. Abra uma janela do navegador e digite o endereço “http:// http://localhost/Estudo/index.php”.

Leonardo de A. Delgado

Números em Ponto Flutuante (double ou float) Uma variável pode ter um valor em ponto flutuante com atribuições que sigam as seguintes sintaxes: $vivas = 1.234; $vivas = 23e4; # equivale a 230.000

Figura – Apresentação no Browser do Olá Mundo.

Tipos de Dados Suportados pelo PHP O PHP suporta oito tipos de dados primitivos divididos em três grupos: Quatro tipos básicos, os dados escalares: - integer - float (número de ponto flutuante, ou também double) - string - boolean Dois tipos compostos - array - object Dois tipos especiais: - resource - NULL PHP utiliza checagem de tipos dinâmica, ou seja, uma variável pode conter valores de diferentes tipos em diferentes momentos da execução do script. Por este motivo não é necessário declarar o tipo de uma variável para usá-la. O interpretador PHP decidirá qual o tipo daquela variável, verificando o conteúdo em tempo de execução. Ainda assim, é permitido converter os valores de um tipo para outro desejado, utilizando o typecasting ou a função gettype. Inteiros (integer ou long) Um inteiro é qualquer numero sem decimais, positivou ou negativo. Englobando todos os números do conjunto Z(os números inteiros). Uma variável pode conter um valor inteiro com atribuições que sigam as seguintes sintaxes: $vivas = 1234; # inteiro positivo na base decimal $vivas = -234; # inteiro negativo na base decimal $vivas = 0234; # inteiro na base octal-simbolizado pelo 0 # equivale a 156 decimal = 0x34; # inteiro na base $vivas hexadecimal(simbolizado # pelo 0x) – equivale a 52 decimal. A diferença entre inteiros simples e long está no número de bytes utilizados para armazenar a variável. Como a escolha é feita pelo interpretador PHP de maneira transparente para o usuário, podemos afirmar que os tipos são iguais.

Texto ou Strings O tipo de dado que suporta textos em PHP é chamado de: string. Para atribuir valores do tipo texto em uma variável PHP pode-se utilizar tanto aspas duplas quanto aspas simples. Strings podem ser atribuídas de duas maneiras: a) utilizando aspas simples ( ' ) – Desta maneira, o valor da variável será exatamente o texto contido entre as aspas (com exceção de \\ e \' – ver tabela abaixo) b) utilizando aspas duplas ( " ) – Desta maneira, qualquer variável ou caracter de escape será expandido antes de ser atribuído. Exemplo: A saída desse script será "---$teste-\n". A saída desse script será "--Mauricio--" (com uma quebra de linha no final). A tabela seguinte lista os caracteres de escape: Sintaxe Significado \n Nova linha \r Retorno de carro (semelhante a \n) Tabulação horizontal \t \\ A própria barra ( \ ) O símbolo $ \$ Aspa simples \’ Aspa dupla \” Arrays Arrays em PHP podem ser observados como mapeamentos ou como vetores indexados. Vetores são mapeamentos de valores que ficam armazenados no disco – HD – do computador. Podemos criar uma variável do tipo array e utilizar as posições do mapeamento do disco para armazenar mais de um valor. Vale ressaltar que os índices podem ser valores de qualquer tipo e não somente inteiros. Inclusive, se os índices forem todos inteiros, estes não precisam formar um intervalo contínuo . Como a checagem

Leonardo de A. Delgado

de tipos em PHP é dinâmica, valores de tipos diferentes podem ser usados como índices de array, assim como os valores mapeados também podem ser de diversos tipos. Exemplo: Equivalentemente, pode-se escrever: Listas As listas são utilizadas em PHP para realizar atribuições múltiplas. Através de listas é possível atribuir valores que estão num array para variáveis. Vejamos o exemplo: Exemplo: list($a, $b, $c) = array("a", "b", "c"); O comando acima atribui valores às três variáveis simultaneamente. É bom notar que só são atribuídos às variáveis da lista os elementos do array que possuem índices inteiros e não negativos. No exemplo acima as três atribuições foram bem sucedidas porque ao inicializar um array sem especificar os índices eles passam a ser inteiros, a partir do zero. Um fator importante é que cada variável da lista possui um índice inteiro e ordinal, iniciando com zero, que serve para determinar qual valor será atribuído. No exemplo anterior temos $a com índice 0, $b com índice 1 e $c com índice 2. Vejamos um outro exemplo: $arr = array(1=>"um",3=>"tres","a"=>"letraA",2=>"dois" ); list($a,$b,$c,$d) = $arr; Após a execução do código acima temos os seguintes valores: $a == null $b == “um” $c == “dois” $d == “tres” Devemos observar que à variável $a não foi atribuído valor, pois no array não existe elemento com índice 0 (zero). Outro detalhe importante é que o valor “tres” foi atribuído à variável $d, e não a $b, pois seu índice é 3, o mesmo que $d na lista. Por fim, vemos que o valor “letraA” não foi atribuído a elemento algum da lista pois seu índice não é inteiro.

Os índices da lista servem apenas como referência ao interpretador PHP para realizar as atribuições, não podendo ser acessados de maneira alguma pelo programador. De maneira diferente do array, uma lista não pode ser atribuída a uma variável, servindo apenas para fazer múltiplas atribuições através de um array. Objetos Desde a versão 4 a linguagem PHP tem suporte à programação orientada a Objetos. A partir dessa versão todos os conceitos utilizados pela Orientação a Objetos podem ser utilizados em uma aplicação desenvolvida em PHP. Na versão 5 porém, esses conceitos foram reforçados e melhorados na linguagem e ficou mais fácil desenvolver aplicações utilizando os paradigmas da Orientação a Objetos. Um objeto pode ser inicializado utilizando o comando new para instanciar uma classe para uma variável. Exemplo: class teste { function nada() { echo "nada"; } } $vivas = new teste; $vivas -> nada(); A utilização de objetos será mais detalhada mais à frente. Booleanos O dado boolean é o tipo mais simples que existe no PHP. É um tipo de dado comum na maioria das linguagens de programação, pois recebe somente dois valores: 1. Verdadeiro = True ou 1 2. Falso = False ou 0 Esse tipo de dado é muito utilizado para validações do resultado de outras instruções. Utilizá-lo-emos bastante nos exemplos dos próximos capítulos.

Transformando os Tipos de Dados Como o interpretador PHP utiliza a tipagem automática para indicar o tipo de dado de uma variável, pode acontecer que o tipo de dado indicado não seja o mais adequado ou o esperado por algum procedimento da aplicação. Por esse motivo, há possibilidade de alterarmos o tipo de dado de uma variável, para que os procedimentos possam ser executados corretamente. A linguagem PHP disponibiliza três formas para transformação dos tipos de dados de uma variável. -Coerção; -Transformação Explicita de Tipo de Dados; - Usando a função Settype;

Leonardo de A. Delgado

Coerções Quando ocorrem determinadas operações (“+”, por exemplo) entre dois valores de tipos diferentes, o PHP converte o valor de um deles automaticamente (coerção). É interessante notar que se o operando for uma variável, seu valor não será alterado. O tipo para o qual os valores dos operandos serão convertidos é determinado da seguinte forma: Se um dos operandos for float, o outro será convertido para float, senão, se um deles for integer, o outro será convertido para integer. Exemplo: $vivas = "1"; // $vivas é a string “1” $vivas = $vivas + 1; // $vivas é o integer 2 $vivas = $vivas + 3.7;// $vivas é o double 5.7 $vivas = 1 + 1.5; // $vivas é o double 2.5 Como podemos notar, o PHP converte string para integer ou double mantendo o valor. O sistema utilizado pelo PHP para converter de strings para números é o seguinte: - É analisado o início da string. Se contiver um número, ele será avaliado. Senão, o valor será 0 (zero); - O número pode conter um sinal no início (“+” ou “-“); - Se a string contiver um ponto em sua parte numérica a ser analisada, ele será considerado, e o valor obtido será double; - Se a string contiver um “e” ou “E” em sua parte numérica a ser analisada, o valor seguinte será considerado como expoente da base 10, e o valor obtido será double Exemplos: $vivas = 1 + "10.5"; // $vivas == 11.5 $vivas = 1 + "-1.3e3"; // $vivas == -1299 $vivas = 1 + "teste10.5"; // $vivas == 1 $vivas = 1 + "10testes"; // $vivas == 11 $vivas = 1 + "+ 10testes"; // $vivas == 1 Transformação Explícita de Tipos de Dados A transformação explicita pode ser utilizada pelos desenvolvedores e é considerada a mais básica de transformação de tipos de dado das variáveis. Para utilizá-lo precisamos dos “typecast”, conversores de um tipo de dado para outro tipo de dado. A sintaxe do typecast de PHP é semelhante ao C: basta escrever o tipo entre parênteses antes do valor. Os tipos de cast permitidos são: • (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.

Exemplo: $vivas = 15; // $vivas é integer (15) $vivas = (double) $vivas; // $vivas é double (15.0) $vivas = 3.9; // $vivas é double (3.9) $vivas = (int) $vivas; // $vivas é integer (3) // o valor decimal é truncado

Com a Função Settype A função settype converte uma variável para o tipo especificado, que pode ser “integer”, “double”, “string”, “array” ou “object”. Exemplo: $vivas = 15; // $vivas é integer settype($vivas, double); // $vivas é double

Constantes Constantes podem ser definidas como uma variável que possui um valor constante, ou seja, o valor será definido uma única vez e jamais será alterado durante a execução da aplicação. Essa é a principal diferença entre uma constante e uma variável. Como o próprio nome indica, as constantes possuem valores que jamais serão alterados por algum procedimento dentro da aplicação. Já as variáveis podem ter o seu valor alterado, dependendo do tipo de ação que for executado pela aplicação. As constantes geralmente são utilizadas para receber valores de configurações / parâmetros que serão utilizados pelo sistema. Um exemplo de constante pode ser um login e senha para conexão da aplicação com o banco de dados. Esse dado sempre será o mesmo durante a execução de toda a aplicação, portanto, poderá estar definido em uma constante. Para definir uma constante na aplicação, utilizamos a função: define(nome_da_constante, valor_da_constante) Exemplo: Constantes pré-definidas O PHP possui algumas constantes pré-definidas, indicando a versão do PHP, o Sistema Operacional do servidor, o arquivo em execução, e diversas outras informações. Para ter acesso a todas as constantes pré-definidas, pode-

Leonardo de A. Delgado

se utilizar a função phpinfo(), que exibe uma tabela contendo todas as constantes pré-definidas, assim como configurações da máquina, sistema operacional, servidor http e versão do PHP instalada. Definindo constantes Para definir constantes utiliza-se a função define. Uma vez definido, o valor de uma constante não poderá mais ser alterado. Uma constante só pode conter valores escalares, ou seja, não pode conter nem um array nem um objeto. A assinatura da função define é a seguinte: int define(string nome_da_constante, mixed valor); A função retorna true se for bemsucedida. Veja um exemplo de sua utilização a seguir: define ("pi", 3.1415926536); $circunf = 2*pi*$raio;

Operadores da Linguagem PHP A linguagem PHP, assim como outras linguagens de programação, disponibiliza vários tipos de operadores para auxiliar na execução de procedimentos dentro das aplicações. Operadores Aritméticos Só podem ser utilizados quando os operandos são números (integer ou float). Se forem de outro tipo, terão seus valores convertidos antes da realização da operação. + adição subtração * multiplicação / divisão % módulo Operador de Strings Para os tipos de dados string, há apenas um operador disponível, o que permite a concatenação entre variáveis do tipo string. Concatenar duas variáveis do tipo string significa juntar o valor das duas variáveis. O quadro a seguir mostra o símbolo que representa o operador de concatenação em PHP.: . concatenação Operador de Atribuição Existe um operador básico de atribuição e diversos derivados. Sempre retornam o valor atribuído. No caso dos operadores derivados de atribuição, a operação é feita entre os dois operandos, sendo atribuído o resultado para o primeiro. A atribuição é sempre por valor, e não por referência.

= atribuição simples atribuição com adição += atribuição com subtração -= atribuição com multiplicação *= /= atribuição com divisão atribuição com módulo %= .= atribuição com concatenação Exemplo: $a = 7; $a += 2; // $a passa a conter o valor 9 Operador bit a bit Comparam dois números bit a bit. & “e” lógico | “ou” lógico ^ ou exclusivo ~ não (inversão) shift left > Operadores Lógicos Os operadores lógicos são geralmente utilizados em expressões e comparações entre condições ou variáveis que retornam valores booleanos. Os operadores lógicos disponíveis em PHP são os que mostramos no quadro a seguir. and “e” lógico “ou” lógico or xor ou exclusivo ! não (inversão) “e” lógico && “ou” lógico || Operadores de Comparação As comparações são feitas entre os valores contidos nas variáveis, e não as referências. Sempre retornam um valor booleano. == igual a diferente de != menor que < > maior que = maior ou igual a Expressão Condicional Existe um operador de seleção que é ternário. Funciona assim: (expressao1)?(expressao2):( expressao3) O interpretador PHP avalia a primeira expressão. Se ela for verdadeira, a expressão retorna o valor de expressão2. Senão, retorna o valor de expressão3. Operadores de Incremento e Decremento Os operadores de atribuição têm como função aumentar (incremento) ou diminuir (decremento) o valor de uma variável. São

Leonardo de A. Delgado

operadores sempre utilizados em tipos de dados numéricos e o valor da variável terá sempre o incremento/decremento de 1. Por exemplo: se uma variável possui o valor 10 e utilizamos o operador de incremento após a utilização do operador, a variável terá o valor 11. Se utilizássemos o decremento nessa mesma variável, o valor seria diminuído para 9. O incremento/decremento será feito de acordo com a ordem que disponibilizamos o operador e a variável. Se colocarmos o operador de incremento/decremento antes da variável, a ação do operador será feita antes de mostrar a variável, caso contrário, se o operador for colocado depois da variável, a ação do operador será feita depois de mostrar a variável. Observe os operadores de incremento e decremento disponíveis em PHP. ++ incremento decremento -Exemplos: $a = $b = 10; // $a e $b recebem o valor 10 $c = $a++; // $c recebe 10 e $a passa a ter 11 $d = ++$b; // $d recebe 11, valor de $b já incrementado

Estruturas de Controle As estruturas que veremos a seguir são comuns para as linguagens de programação imperativas, bastando, portanto, descrever a sintaxe de cada uma delas, resumindo o funcionamento. Blocos Um bloco consiste de vários comandos agrupados com o objetivo de relacionálos com determinado comando ou função. Em comandos como if, for, while, switch e em declarações de funções blocos podem ser utilizados para permitir que um comando faça parte do contexto desejado. Blocos em PHP são delimitados pelos caracteres “{” e “}”. A utilização dos delimitadores de bloco em uma parte qualquer do código não relacionada com os comandos citados ou funções não produzirá efeito algum, e será tratada normalmente pelo interpretador. Exemplo: if ($x == $y) comando1; comando2; que comando2 esteja Para relacionado ao if é preciso utilizar um bloco: if ($x == $y){ comando1; comando2; }

Comandos de Seleção As estruturas de seleção, também conhecidas por estruturas condicionais, têm como função validar condições e comparar o resultado das condições. Após executar as funções de validação e comparação, as estruturas de seleção irão executar os blocos de comando, definidos de acordo com o resultado da comparação. A expressão condicional, que verificamos no capítulo anterior, pode também ser considerada como uma estrutura de controle de seleção. Existem três tipos de estruturas de seleção: If, if..else e Switch. A seguir vamos verificar quais as diferenças e sintaxe de cada uma delas. If O mais trivial dos comandos condicionais é o if. Ele testa a condição e executa o comando indicado se o resultado for true (valor diferente de zero). Ele possui duas sintaxes: if (expressão) comando; if (expressão): comando; ... comando; endif; if(condição){ Instrução1; Instrução2; Etc; } Para incluir mais de um comando no if da primeira sintaxe, é preciso utilizar um bloco, demarcado por chaves. If...else O else é um complemento opcional para o if. Se utilizado, o comando será executado se a expressão retornar o valor false (zero). Suas duas sintaxes são: if (expressão) comando; else comando; if (expressão): comando; ... comando; else comando; ... comando; endif;

Leonardo de A. Delgado

A seguir, temos um exemplo do comando if utilizado com else: if ($a > $b) $maior = $a; else $maior = $b; O exemplo acima coloca em $maior o maior valor entre $a e $b Em determinadas situações é necessário fazer mais de um teste, e executar condicionalmente diversos comandos ou blocos de comandos. Para facilitar o entendimento de uma estrutura do tipo: if (expressao1) comando1; else if (expressao2) comando2; else if (expressao3) comando3; else comando4; Foi criado o comando, também opcional else if. Ele tem a mesma função de um else e um if usados sequencialmente, como no exemplo acima. Num mesmo if podem ser utilizados diversos elseif’s, ficando essa utilização a critério do programador, que deve zelar p ela legibilidade de seu script. O comando else if também pode ser utilizado com dois tipos de sintaxe. Em resumo, a sintaxe geral do comando if fica das seguintes maneiras: if (expressao1) comando; [ elseif (expressao2) comando; ] [ else comando; ] if (expressao1) : comando; ... comando; [ elseif (expressao2) comando; ... comando; ] [ else comando; ... comando; ] endif; Switch O comando switch atua de maneira semelhante a uma série de comandos if na mesma expressão.

Frequentemente o programador pode querer comparar uma variável com diversos valores, e executar um código diferente a depender de qual valor é igual ao da variável. Quando isso for necessário, deve-se usar o comando switch. O exemplo seguinte mostra dois trechos de código que fazem a mesma coisa, sendo que o primeiro utiliza uma série de if’s e o segundo utiliza switch: if ($i == 0) print "i é igual a zero"; elseif ($i == 1) print "i é igual a um"; elseif ($i == 2) print "i é igual a dois"; switch ($i) { case 0: print "i é igual a zero"; break; case 1: print "i é igual a um"; break; case 2: print "i é igual a dois"; break; É importante compreender o funcionamento do switch para não cometer enganos. O comando switch testa linha a linha os cases encontrados, e a partir do momento que encontra um valor igual ao da variável testada, passa a executar todos os comandos seguintes, mesmo os que fazem parte de outro teste, até o fim do bloco. por isso usa-se o comando break, quebrando o fluxo e fazendo com que o código seja executado da maneira desejada. Veremos mais sobre o break mais adiante. Veja o Exemplo: switch ($i) { case 0: print "i é igual a zero"; case 1: print "i é igual a um"; case 2: print "i é igual a dois"; } No exemplo acima, se $i for igual a zero, os três comandos “print” serão executados. Se $i for igual a 1, os dois últimos “print” serão executados. O comando só funcionará da maneira desejada se $i for igual a 2. Em outras linguagens que implementam o comando switch, ou similar, os valores a serem testados só podem ser do tipo inteiro. Em PHP é permitido usar valores do tipo string como elementos de teste do comando switch. O exemplo abaixo funciona perfeitamente:

Leonardo de A. Delgado

switch ($s) { case "casa": print "A casa é amarela"; case "arvore": print "a árvore é bonita"; case "lampada": print "João apagou a lâmpada"; }

do { ... } while ();

Comandos de Repetição As estruturas de repetição são muito utilizadas quando precisamos executar um bloco de comandos várias vezes até que uma dada condição fique com o valor falso. Existem três tipos de estruturas de repetição: While, Do...While e For. Todas possuem a mesma funcionalidade, repetir as instruções do bloco de comandos até que uma dada condição fique com o valor falso, porém as três fazem a validação da condição de forma diferente. While O while é o comando de repetição (laço) mais simples. Ele testa uma condição e executa um comando, ou um bloco de comandos, até que a condição testada seja falsa. Assim como o if, o while também possui duas sintaxes alternativas: while () ; while (): ; ... ; endwhile; A expressão só é testada a cada vez que o bloco de instruções termina, além do teste inicial. Se o valor da expressão passar a ser false no meio do bloco de instruções, a execução segue até o final do bloco. Se no teste inicial a condição for avaliada como false, o bloco de comandos não será executado. O exemplo a seguir mostra o uso do while para imprimir os números de 1 a 10: $i = 1; while ($i 0) { if ($x == 20) { echo “erro! x = 20”; break; } No trecho de código acima, o laço while tem uma condição para seu término normal ($x Para toda regra, existe uma exceção, confira: Desta forma podemos utilizar qualquer nome identificador, passando uma string envolvida por chaves { }, o que faz o PHP interpretar o identificador como uma string, sem se preocupar com a real nomenclatura da variável. O Modificador Static Uma variável estática é visível num escopo local, mas ela é inicializada apenas uma vez e seu valor não é perdido quando a execução do script deixa esse escopo.

Veja o seguinte exemplo: function Teste() { $a = 0; echo $a; $a++; } O último comando da função é inútil, pois assim que for encerrada a execução da função a variável $a perde seu valor. Já no exemplo seguinte, a cada chamada da função a variável $a terá seu valor impresso e será incrementada: function Teste() { static $a = 0; echo $a; $a++; } O modificador static é muito utilizado em funções recursivas, já que o valor de algumas variáveis precisa ser mantido. Ele funciona da seguinte forma: O valor das variáveis declaradas como estáticas é mantido ao terminar a execução da função. Na próxima execução da função, ao encontrar novamente a declaração com static, o valor da variável é recuperado. Em outras palavras, uma variável declarada como static tem o mesmo “tempo de vida” que uma variável global, porém sua visibilidade é restrita ao escopo local em que foi declarada e só é recuperada após a declaração. Exemplo: function Teste() { echo "$a"; static $a = 0; $a++; } O exemplo acima não produzirá saída alguma. Na primeira execução da função, a impressão ocorre antes da atribuição de um valor à função, e portanto o conteúdo de $a é nulo (string vazia). Nas execuções seguintes da função Teste() a impressão ocorre antes da recuperação do valor de $a, e portanto nesse momento seu valor ainda é nulo. Para que a função retorne algum valor o modificador static deve ser utilizado. Variáveis Variáveis O PHP tem um recurso conhecido como variáveis variáveis, que consiste em variáveis cujos nomes também são variáveis. Sua utilização é feita através do duplo cifrão ($$). $a = "teste"; $$a = "Mauricio Vivas"; O exemplo acima e equivalente ao seguinte: $a = "teste"; $teste = "Mauricio Vivas";

Leonardo de A. Delgado

Variáveis Enviadas pelo Navegador Quando utilizamos páginas PHP e HTML para fazer interação entre o usuário e a aplicação, podemos utilizar as variáveis enviadas pelo navegador. Há dois tipos de variáveis enviadas pelo navegador: 1. POST= são as variáveis enviadas pelos formulários em HTML 2. GET= são as variáveis enviadas ou por formulários HTML ou pelo endereço do navegador - URL no endereço do navegador. Variáveis de Ambiente O PHP possui diversas variáveis de ambiente, como a $PHP_SELF, por exemplo, que contém o nome e o path do próprio arquivo. Algumas outras contém informações sobre o navegador do usuário, o servidor http, a versão do PHP e diversas informações. Para ter uma listagem de todas as variáveis e constantes de ambiente e seus respectivos conteúdos, deve-se utilizar a função phpinfo(). Variáveis de Sessão A linguagem PHP disponibiliza também variáveis de sessão que permitem o controle da sessão do usuário. Esse tipo de variável é comumente utilizado em aplicações que possuem autenticação de usuário. Para visualizar o conteúdo de uma variável de sessão, basta utilizarmos a instrução: $_SESSION[“nome_da_variavel”]. Verificando o tipo de uma variável Por causa da tipagem dinâmica utilizada pelo PHP, nem sempre é possível saber qual o tipo de uma variável em determinado instantes e não contar com a ajuda de algumas funções que ajudam a verificar isso. A verificação pode ser feita de duas maneiras: Função que retorna o tipo da variável Esta função é a gettype. Sua assinatura é a seguinte: string gettype(mixed var); A palavra “mixed” indica que a variável var pode ser de diversos tipos. A função gettype pode retornar as seguintes strings: “integer”, “double”, “string”, “array”, “object” e “unknown type”. Funções que testam o tipo da variável São as funções is_int, is_integer, is_real, is_long, is_float, is_string, is_array e is_object. Todas têm o mesmo formato, seguindo modelo da assinatura a seguir: int is_integer(mixed var);

Todas essas funções retornam true se a variável for daquele tipo, e false em caso contrário. Destruindo uma variável É possível desalocar uma variável se ela não for usada posteriormente através da função unset, que tem a seguinte assinatura: int unset(mixed var); A função destrói a variável, ou seja, libera a memória ocupada por ela, fazendo com que ela deixe de existir. Se mais na frente for feita uma chamada á variável, será criada uma nova variável de mesmo nome e de conteúdo vazio, a não ser que a chamada seja pela função isset. Se a operação for bem sucedida, retorna true. Verificando se uma variável possui um valor Existem dois tipos de teste que podem ser feitos para verificar se uma variável está setada: com a função isset e com a função empty. A função isset Possui o seguinte protótipo: int isset(mixed var); E retorna true se a variável estiver setada (ainda que com uma string vazia ou o valor zero), e false em caso contrário. A função empty Possui a seguinte assinatura: int empty(mixed var); E retorna true se a variável não contiver um valor (não estiver setada) ou possuir valor 0 (zero) ou uma string vazia. Caso contrário, retorna false. QUESTÕES 1) Complete a frase abaixo com uma das alternativas, a ordem das palavras deve corresponder à lógica da frase. A linguagem PHP possui um .... responsável pela transformação das páginas .... em páginas .... . Essas páginas .... são as páginas que o .... irá disponibilizar ao .... a) Servidor Web, HTML, PHP, PHP, Usuário, Interpretador b) Servidor Web, PHP, HTML, PHP, Interpretador, Usuário c) Interpretador, PHP, HTML, HTML, Servidor WEB, Usuário d) Interpretador, HTML, PHP, PHP, Servidor WEB, Usuário

Leonardo de A. Delgado

2) Selecione a alternativa incorreta. O PHP pode ser definido como: a) Uma linguagem de programação para Internet b) Uma linguagem “Open Source” c) Uma linguagem interpretada 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 licença c) Por uma comunidade de softwares livres d) Por uma empresa privada 4) Qual das alternativas abaixo não é uma vantagem na utilização do PHP? a) O PHP é multiplataforma b) O PHP é “Open Source” c) O PHP possui integração com diversos banco de dados d) O PHP possibilita o desenvolvimento de aplicações estáticas 5) Para desenvolver aplicações com PHP, é necessário ter um ambiente de desenvolvimento. Quais dos itens abaixo são obrigatórios nesse ambiente de desenvolvimento (é permitida múltipla escolha): a) Servidor WEB b) Banco de Dados c) Interpretador PHP d) Editor PHP 6) Qual das alternativas abaixo não faz parte da estrutura básica de uma aplicação desenvolvida com PHP: a) Interface com usuário b) Página com instruções PHP c) Interface com o banco de dados d) Integração com banco de dados 7) Para utilizar uma instrução PHP em uma página, é necessário (apenas uma alternativa está correta): a) Utilizar os delimitadores PHP representados pelos caracteres: b) Declarar uma variável c) Utilizar comandos HTML d) Montar a instrução PHP no corpo da página HTML 8) Todas as instruções PHP devem ser finalizadas com (apenas uma alternativa está correta): a) Ponto (.) b) Ponto e vírgula (;) c) Vírgula (,) d) Todas as alternativas estão incorretas

9) Ao declarar uma variável é importante observar (é permitida múltipla escolha): a) Se o símbolo “$” foi utilizado no início do nome da variável b) Se foi declarado o tipo de dados da variável c) Se a variável está com letras maiúsculas e minúsculas por causa do case-sensitive d) O tipo de valor que a variável está recebendo 10) O comando PHP que imprime instruções na tela é o (é permitida múltipla escolha): a) printf b) print c) printout d) echo 11) Selecione a alternativa INCORRETA. A linguagem PHP suporta os seguintes tipos de dados: a) Números b) Textos c) Datas d) Lista de Valores 12) O tipo de dado que permite duas formas de atribuição é o (apenas uma alternativa está correta): a) Integer b) Double c) Boolean d) String 13) O tipo de dado da variável abaixo será (apenas uma alternativa está correta): $numero = “1”; a) Integer b) Boolean c) String d) Double 14) Para utilizar caracteres de escape na impressão de instruções em PHP é necessário (apenas uma alternativa está correta): a) Utilizar o comando HTML
b) Utilizar o comando HTML c) Utilizar o comando HTML d) Todas as alternativas estão incorretas 15) A instrução abaixo irá (apenas uma alternativa correta): $numero = (double) “1”; a) Transformar a variável para String b) Transformar a variável para Double c) Transformar a variável para Integer d) Transformar a variável para Boolean

Leonardo de A. Delgado

16) Os tipos de variáveis mais utilizados no desenvolvimento de aplicações com PHP são (é permitida múltipla escolha): a) Sessão b) Enviadas pelo Navegador c) Ambiente d) Memória 17) Complete a frase abaixo com uma das alternativas: As variáveis que utilizam a barra de endereços do navegador é a .... a) Sessão b) Post c) Get d) Servidor 18) O tipo de variável que possui os dados da configuração do PHP é (apenas uma alternativa correta): a) Ambiente b) Post c) Sessão d) Servidor 19) A função que verifica se a variável está setada e como valor vazio é a (apenas uma alternativa correta): a) is_string b) unset c) empty d) isset 20) A principal diferença entre uma variável e uma constante é (apenas uma alternativa correta): a) A constante somente aceita um tipo de dado b) A constante tem limitação de valor c) O valor da constante não muda nunca na aplicação d) A constante não pode ser utilizada em algumas instruções 21) Os operadores que permitem a realização de cálculos matemáticos são (múltipla escolha): a) Aritméticos b) String c) Atribuição d) Incremento 22) Complete a frase com uma das alternativas abaixo: A concatenação é uma operação permitida pelo operador... e tem como função .... a) Aritmético, adicionar variáveis b) Atribuição, atribuir valor às variáveis c) String, unir valores das variáveis d) Decremento, separar o valor da variável em dois

23) O operador que retorna o resto de uma divisão é (apenas uma alternativa correta): a) Aritmético – Divisão b) Aritmético – Módulo c) Aritmético - Incremento d) Aritmético - Atribuição 24) Os operadores de atribuição são utilizados para (múltipla escolha): a) Atribuir valores as variáveis b) Atribuir tipo de dados em variáveis c) Executar uma operação matemática em uma variável d) Executar uma operação matemática somente após a atribuição de um valor 25) A expressão condicional pode ser definida como (é permitida múltipla escolha): a) Um operador aritmético b) Um operador de atribuição c) Um comando de seleção d) Um operador de seleção ternário 26) As estruturas de controle disponíveis no PHP são (é permitida múltipla escolha): a) Repetição b) Atribuição c) Seleção d) Quebra de Fluxo 27) A estrutura de controle If é uma estrutura do tipo (apenas uma alternativa está correta): a) Condição b) Seleção c) Atribuição d) Repetição 28) A estrutura de controle Switch se assemelha a outra estrutura de controle. Qual é a estrutura? a) For b) If c) Break d) While 29) A estrutura de repetição que testa o valor da condição no final é: a) While b) For c) Do ... While d) Switch 30) As estruturas de quebra de fluxo são utilizadas para (é permitida múltipla escolha): a) Finalizar uma instrução b) Dar suporte às outras estruturas de controle c) Alterar o fluxo das estruturas de repetição d) Interromper a execução da página

Leonardo de A. Delgado

GABARITO 1) C, 2)D, 3) C, 4) D, 5) A,C, 6)C, 7)A, 8) B, 9)A, C, 10)B,D, 11)C, 12)D, 13)C, 14)C, 15)B, 16)A,B,C 17)C, 18)A, 19) C, 20)C, 21)A,C,D, 22)C, 23)B, 24)A,C, 25)C, 26)A, C,D, 27)B, 28)B, 29)C, 30)A,B,C

Leonardo de A. Delgado