PHP & MySQL José Francisco [[email protected]] Os slides originais são parte do material de cursos anteriores do curso de PHP, ministrados por Sérgio Clemente. Com modificações! Também possui a contribuição de Cleviton V. F. Monteiro. Conteúdo didático é baseado em diversas fontes como: tutoriais, livros e o site oficial de PHP. Inspirado também em slides de Jobson Ronan, instrutor de Java Avançado do CITi. Roteiro     Variáveis Tipos Arrays Resource Variáveis   Um espaço na memória para armazenar dados São case sensitive.    i.e. $nome e $Nome são diferentes. Começam com $ podem conter letras digitos e sublinhados O primeiro caractere não pode ser um número. Regras de Nomenclatura    O primeiro caractere é uma letra ou um sublinhado ‘_’. O nome só pode conter caracteres alfa-numéricos e sublinhados (a-Z, 0-9, _ ) Nome que contenham mais de uma palavra devese separar as palavras por um sublinhado ou por letra maiúscula.  $nome_cliente ou $nomeCliente Variáveis $idade $_nome $i $3idade $primeiro-nome  Em PHP não é necessário declarar o tipo de uma variável antes de usá-la (Tipagem Dinâmica). <?php $str $i = $f = $v = ?> = "José"; // $str armazena o tipo string. 12; // $i armazena o tipo inteiro. 3.1415; // $f armazena o tipo ponto flutuante. “3.1415"; // $v armazena o tipo string. Variáveis Tipo Inteiro Pontos Flutuante Strings Booleano Descrição Um inteiro é um número do conjunto Z = {..., -2, -1, 0, 1, 2, ...}. Números reais, como 4.12 Array Objetos Seqüência de caracteres Um booleano expressa um valor de verdade. Ele pode ser TRUE ou FALSE. Representa coleções Instancias de classes definidas. Resource NULL Representa um recurso externo. Representa uma variável sem valor. Inteiro   Representam os números inteiros da matemática Variam de -2.147.483.648 à 2.147.483.647 <?php $a $a $a $a $a ?> = = = = = 1; # número decimal -2; # um número negativo 0123; # número octal (83 em decimal) 0xF; # número hexadecimal (15 em decimal) 7*12 + 6/3; # saída: 86 OBS: Caso ocorra overflow o Número de Ponto Flutuante é retornado. Pontos Flutuantes   Possuem uma parte inteira e uma parte fracionária. O tamanho depende da plataforma. <?php $a = 1.234; $b = 1.2e3; $c = 7E-10; ?>  Cuidado o seguinte Script gera a saída 1. <?php floor((0.1+0.7)*10) == 7 ?> Strings    (1 byte por caractere): Não suporta diretamente unicode. Podem ser delimitadas por “” (aspas duplas), ‘’ (aspas simples) ou por `` (grave). Cada uma das delimitações tem um propósito específico. Strings  Delimitado por aspas simples ‘’  Variáveis internas não são expandidas. <?php $id = 12; $query = ‘SELECT * FROM FUNCIONARIO WHERE ID=$id’; echo($query); ?> Saída SELECT * FROM FUNCIONARIO WHERE ID=$id Strings  Delimitadas por aspas duplas “”  As variáveis externas são expandidas. <?php $id = 12; $query = "SELECT * FROM FUNCIONARIO WHERE ID=$id"; echo($query); ?> Saída SELECT * FROM FUNCIONARIO WHERE ID=12 Strings  Delimitadas por `` (acentos grave)  Executa o conteúdo como um comando do shell e retorna sua saída. <?php $a = `time`; echo $a; ?> Saida: Hora atual: 16:00:57,61 Digite a nova hora: Strings  Caracteres especiais para string Seqüência \n \r \t \\ \$ \’ \” Significado Nova linha Retorno de carro Tab horizontal Barra invertida Cifrão Aspas simples Aspas duplas “ OK OK OK OK OK ERRO OK ‘ ERRO ERRO ERRO ERRO ERRO OK ERRO Exercícios  Faça os exercícios 4 e 5 Strings    Seqüência de caracteres. Acessando um caractere da string. Coloca-se entre chaves o índice do caractere desejado (começando em 0). <?php $str = "abc"; echo $str{1}; echo "<br>"; $str{1} = '2'; echo $str; ?> Saída gerada: b a2c Strings  Concatenação de Strings. <?php $str1 = "ab"; $str2 = "c"; $concat = $str1 . $str2; ?> Strings  Conversão de strings em inteiros  Tenta converter da esquerda para a direita, se não conseguir evolui para 0. <?php $foo $foo $foo $foo $foo $foo $foo ?> = = = = = = = 1 + "10.5"; // $foo é float (11.5) 1 + "-1.3e3"; // $foo é float (-1299) 1 + "bob-1.3e3"; // $foo é integer (1) 1 + "bob3"; // $foo é integer (1) 1 + "10 Small Pigs"; // $foo é integer (11) 4 + "10.2 Little Piggies"; //$foo é float(14.2) "10.0 pigs " + 1; // $foo é float (11) Booleano   Representam os conceitos de verdadeiro e falso. Use as palavras chave TRUE ou FALSE. Ambas são insensitivas ao caso. <?php $foo = True; // assimila o valor TRUE para $foo ?> OBS: Assim como na linguagem C, em php o 0 é denotado para falso e true para qualquer numero diferente de 0. Portanto: $b1 = -1; //true $b2 = 0; //false $b3 = 2; // true Booleano  Normalmente utilizado em estruturas de controle junto com os operadores. <? $bool = 3 > 0; // $bool = TRUE; if ($bool == True){ //poderia ser if($bool){.. echo ("Entrou no if!"); } else { echo ("Entrou no else!"); } ?> Arrays    Encapsula uma coleção de dados. Podem ser indexados por números inteiros ou strings. Quando utilizar:    Para evitar ter muitas variáveis similares. Quando há necessidade de ordenação dos elementos Entre outros Arrays  Há três diferentes tipos de arrays:    Numéricos: Um array com uma chave numérica Associativo: Um array cuja chave difere de um valor numérico (string). Multidimensional: Um array que possui um ou mais arrays como elemento. Arrays   Não é necessário inicializar arrays. Adota o conceito de array dinâmico. <?php $produtos[] = "Pneu"; /* Equivalente a $produtos[0] = "Pneu“ e implicitamente o array foi criado */ $produtos[1] = "Oleo"; $produtos[] = "Luva"; ?> Conteúdo do Array: Indexação - Numéricos  Os arrays são indexados por números: <?php $produtos[] = “Carro"; $produtos[12] = “Pneus"; $produtos[2] = “Motor"; $produtos[] = “Rodas"; ?> Conteúdo do Array: Arrays - Construtor  Utilizado para criar arrays: array( [chave =>] valor , ... ); Chave: int ou string Valor: pode ser qualquer coisa [ ]  opcional. Arrays  Arrays Associativos <?php $precos = array( "Pneu"=>100, "Oleo"=>10, "Luva"=>4); $precos["Capo"] = 300; echo $precos["Oleo"]; ?> Conteúdo do array: Array - Multidimensionais    São arrays que possuem como elementos outros arrays. Conceito importante em PHP. Presente nos meios de submissão de Formulários HTTP (POST, GET, FILE, etc). Array $familias = array( "Silva"=>array( "Renata", "Kelly", "Willian" ), "Lima"=>array( "Adriana", "Thiago" ), "Barbosa"=>array( "Luana" ) );  Exemplo: Conteúdo do array: Arrays  Ordenando Arrays. <?php $produtos = array("Pneu", "Oleo", "Luvas"); $precos = array( "Pneu"=>100, "Oleo"=>10, "Luva"=>41); sort($produtos); // ordena pelo valor asort($precos); // ordena por preco (valor) ksort($precos); // ordena por nome (chave,índice) ?> Array  Exemplo final: <?php $a = array("José", 4=>"Joaquim", "Maria"); $b = array("Id2" => "José", "Id10" => "Maria"); ?>  A memória fica mapeada como: Array  Manipulando Arrays: (exemplo mais elaborado) <?php // Criando um array normal $array = array(1, 2, 3, 4, 5); print_r($array); unset($array[1]); print_r($array); // Acrescentando um item (note que a chave é 5, em vez de zero // como voce pode ter esperado). $array[] = 6; print_r($array); // Reindexando: $array = array_values($array); $array[] = 7; print_r($array); ?> Resource   Representa um recurso “externo”. Por exemplo:     Uma conexão com mysql. Um arquivo aberto. ... Exemplo: <?php $handle = fopen (“curso.txt", "r"); ?> http://br.php.net/manual/pt_BR/resource.php NULL  Representa uma variável sem valor ou não inicializada. Não é Case Sensitive (null == Null).  Exemplo:  <?php $raiz_quadrada = ($i > 0) ? sqrt($i) : null; ?> Variáveis de variáveis  O conteúdo de uma variável pode virar o nome de uma variável. <?php $a = "gambiarra"; $$a = "Isso é seboso!"; echo $gambiarra; ?> Referências  Exemplos de códigos e tutoriais: http://www.phpbuilder.com/  Site oficial: http://www.php.net  Exemplo de códigos: http://www.scriptbrasil.com.br/  W3 Schools: http://www.w3schools.com Dúvidas?? PHP & MySQL José Francisco [[email protected]]