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