PHP Aula 3 Strings, Funções e Arrays FUNÇÕES Professor: Leonardo Pereira E-mail: leongamerti@gmail.com Facebook: leongamerti Material de Estudo: http://www.leonti.vv.si INTRODUÇÃO Uma função é um pedaço de código com um objetivo especifico, encapsulado sob uma estrutura única que recebe um conjunto de parâmetros e retorna um dado. Uma função é declarada uma única vez, mas pode ser utilizada diversas vezes. É uma das estruturas mais básicas para prover reuso. CRIAÇÃO Usamos o operador function seguido de um nome qualquer que será o identificador da mesma. Este nome obrigatoriamente deve iniciar com uma letra. Na mesma linha, digitamos a lista de argumentos que a função irá receber, separados por vírgula. Em seguida, encapsulado por chaves {, vem o código da função. No final, utiliza-se a clausula return para retornar o resultado da função.
EXEMPLO function somar($v1, $v2, $v3) { $total = $v1 + $v2 + $v3; return $total. A função acima recebe 3 parâmetros e retorna um valor definido pela soma das 3 variáveis. VARIÁVEIS GLOBAIS Todas as variáveis declaradas dentro do escopo de uma função são locais. Para acessar uma variável externa ao contexto de uma função sem passá-la como parâmetro, é necessário declará-la como global. Uma variável global é acessada a partir de qualquer ponto da aplicação. EXEMPLO $p = 30; function porcentagem($numero){ global $p; return ($numero*$p)/100; Essa função retorna 30% do valor passado como argumento. VARIÁVEIS ESTÁTICAS Dentro do escopo de uma função podemos armazenar variáveis de forma estática. Assim, elas mantêm o valor que lhes foi atribuído na ultima execução. Para isso usamos o operador static.
EXEMPLO function percorre($km){ static $total; $total += $km; echo Percorreu mais $km do total de $total ; percorre(100); // Percorreu mais 100 do total de 100 percorre(20); // Percorreu mais 20 do total de 120 PASSAGEM DE PARÂMETROS Existem dois tipos de passagem de parâmetros: por valor por referência Por padrão, os valores são passados por valor. PASSAGEM POR VALOR function incrementa($variavel, $valor){ $a = 10; $variavel += $valor) incrementa ($a, 20); echo $a; // 10 O parâmetro que a função recebe é tratado como variável local dentro do contexto da função, não alterando o seu valor externo. PASSAGEM POR REFERÊNCIA function incrementa(&$variavel, $valor){ $variavel += $valor; $a = 10; incrementa ($a, 20); echo $a; // 30 Para realizar a passagem de parâmetros por referencia, usamos o operador & na frente do parâmetro, fazendo com que as transformações realizadas pelo função sobre a variável sejam repassada a variável externa também.
VALORES PADRÃO O PHP permite definir valores default para parâmetros. function incrementa(&$variavel, $valor = 40){ $a = 10; $variavel += $valor; incrementa ($a); echo $a; // 50 Se o programador executar a função sem especificar o parâmetro, será assumido o valor 40. RECURSÃO function fatorial($numero){ if($numero == 1) return $numero; else return $numero * fatorial($numero 1); echo fatorial(3); // 6 echo fatorial (5); // 120 O PHP permite chamada de funções de forma recursiva. Funções recursivas são aquelas que eu seu interior fazem chamadas a si mesmas. INTRODUÇÃO Uma string é uma cadeia de caracteres alfanuméricas. Para declarar uma string podemos utilizar aspas simples ou aspas duplas. $variavel = Teste 1 ; $variavel = Teste 1 ; STRINGS
ASPAS SIMPLES E ASPAS DUPLAS A diferença é que todo conteúdo contido dentro de aspas duplas é avaliado pelo PHP. Se a string contem uma variável, esta variável será traduzida pelo seu valor. $fruta = maça ; echo Gosto de $fruta ; // Gosto de maça echo Gosto de $fruta ; // Gosto de $fruta STRING DE N LINHAS Também podemos declarar uma string com muitas linhas observando a sintaxe a seguir. $texto = <<<CHAVE Estou me preparando para ser aprovado em um concurso CHAVE; echo $texto; Devemos escolher uma palavra-chave para delimitar o inicio e o fim da string. CONCATENAÇÃO Para unir strings podemos usar o operador ponto ou colocar múltiplas variáveis dentro de aspas duplas. $bebida = suco ; $lanche = sanduiche ; echo Eu gosto de $lanche e $bebida ; echo Eu gosto de.$lanche. e.$bebida; FUNÇÕES DE STRING Existem diversas funções do PHP que foram criadas para manipular strings. strtoupper: transforma uma string para maiúsculo. $nome = Leonardo ; echo strtoupper($nome); // LEONARDO strtolower: transforma uma string para minúsculo. $texto = AVISO ; echo strtolower($texto); // aviso
FUNÇÕES DE STRING substr: retorna uma parte da string. Possui 3 argumentos que são: Uma string. Ponto de inicio da analise. Quantidade de caracteres. $time = Botafogo ; echo substr($time, 1); // otafogo echo ($time, 0, 3); // Bot echo substr($time, 2, -1) // tafog echo substr($time, -2) // go Se a quantidade de caracteres for negativa, o PHP conta n caracteres antes do final da string. FUNÇÕES DE STRING str_repeat: repete uma string uma certa quantidade de vezes. 1 entrada 2 - quantidade de repetições $txt = Ola ; echo str_repeat($txt, 2) // OlaOla FUNÇÕES DE STRING strlen: retorna o comprimento de uma string $texto = Olá mundo ; echo strlen($texto) // 9 str_replace: substitui uma string por outra em um dado contexto. Possui 3 parâmetros. 1 substituída 2 substituta 3 - string $txt = O gato é legal ; echo str_replace( rato, leão, $txt); // o leão é legal FUNÇÕES DE STRING strpos: encontra a primeira ocorrência de uma string dentro de outra. $texto = O gato é legal ; echo strpos($texto, legal ); // 9 chop: remove caracteres no final de uma string. $txt = Leonardo Pereira ; echo chop($txt, Pereira ); // Leonardo ord: retorna o valor ASCII de um caractere. echo ord("h"); // 104
INTRODUÇÃO Os arrays em PHP são verdadeiros containers, servindo para armazenar números, strings, objetos, dentro outros, de forma dinâmica. Além disso, o PHP nos oferece uma gama enorme de funções para manipulá-los, as quais serão vistas a seguir. ARRAYS CRIANDO UM ARRAY Arrays são acessados mediante uma posição, como um índice numérico. Para criar um array, pode-se usar a função array. $cores = array( red, blue, yellow ); Outra forma de criar um array é simplesmente adicionando-lhe valores como abaixo; $nomes[] = Leon ; $nomes[] = Isabella ; Para acessar o array indexado basta indicar o seu índice entre colchetes. echo $nomes[1]; // Isabella ARRAYS ASSOCIATIVOS O PHP permite a criação de arrays associativos. Neste tipo de array, temos uma chave de acesso para cada posição. $pessoa = array( nome => Leon, cidade => RJ ); Outra forma de criar um array associativo é simplesmente adicionando-lhe valores com assim: $pessoa[ nome ] = Maria da Silva ; $pessoa[ rua ] = Pres. Vargas ; $pessoa[ bairro ] = Centro ; A chave pode ser uma string ou um inteiro não negativo.
ITERAÇÕES ARRAYS MULTIDIMENSIONAIS $nomes = array( Leonardo, Bruno, Igor ); foreach($nomes as $chave => $valor){ echo $valor; Um array multidimensional ou matriz é aquele em que em alguma posição existe um outro array. Também e criado com a função array(). $carros = array( Palio => array( cor => azul, potencia => 1.0 ), Corsa => array( cor => preto, ); potencia => 1.8 ) echo $carros [ Corsa ][ cor ]; // preto FUNÇÕES DE ARRAY array_push: adiciona elementos ao final de um array. array_pop: remove um valor do final de um array. array_shift: remove um elemento do inicio de um array. array_unshift: adiciona um elemento no inicio de um array. array_reverse: recebe um array e retorna-o na ordem inversa. FUNÇÕES DE ARRAY array_merge: mescla dois ou mais arrays. array_keys: retorna as chaves de um array associativo. array_values: retorna um array contendo os valores de outro array associativo. count: retorna a quantidade de elementos de um array. array_slice: extrai uma porção de um array.
FUNÇÕES DE ARRAY sort: ordena um array pelo seu valor, não mantendo a associação de índices. rsort: ordena um array em ordem reversa pelo seu valor, não mantendo a associação de índices. asort: ordena um array associativo pelo seu valor, mantendo a associação de índices. arsort: ordena de forma reversa um array associativo pelo seu valor, mantendo a associação de índices. ksort: ordena um array pelos seus índices. krsort: ordena um array pelo seus índices de forma reversa. FUNÇÕES DE ARRAY explode: converte uma string em um array, separando os elementos por meio de um separador. $data = 31/12/2004; $s = explode( /, $data); implode: converte um array em uma string, separando os elementos do array por meio de um separador. $data = array( 31, 12, 2004 ); $s = implode( /, $data); INTRODUÇÃO FUNÇÕES MATEMÁTICAS O PHP possui diversas funções matemáticas para facilitar o dia-a-dia do programador, sendo que as principais seguem abaixo: rand gera um inteiro aleatório. abs valor absoluto. ceil arredonda frações para cima. floor arredonda frações para baixo.
INTRODUÇÃO round Arredonda um número de 0 até 0.4 === 0. de 0.5 até 0.9 === 1. max localiza o maior valor. min localiza o menor valor. pow (numero, expoente) potência. sqrt ( ) raiz quadrada. EMAIL ENVIO DE EMAIL O PHP possui uma função que permite o envio de e- mails: chamada mail(). mail (destinatário, assunto, mensagem, headers) destinatário receptor do email. assunto frase referente ao teor do email. mensagem corpo do email. headers opcional. Usado para configurar outras opções no email como Bcc. SCRIPTS DA AULA
EXEMPLO 1 :: FUNÇÕES EXEMPLO 2 :: VARIÁVEL GLOBAL function somar($a, $b){ function imprimir(){ return $a + $b; echo $nome; echo somar(3,5); $nome = "Leonardo"; imprimir(); EXEMPLO 3 :: PASSAGEM DE PARÂMETRO EXEMPLO 4 :: VARIÁVEL ESTÁTICA function incrementar1($d){ $d++; function incrementar2(&$d){ $d++; function percorre($km){ $total = 100; $total -= $km; echo "Faltam $total kms ; $c = 10; incrementar1($c); echo $c; $c = 10; incrementar2($c); echo $c; percorre(10); percorre(40);
EXEMPLO 5 :: VALOR PADRÃO EXEMPLO 6 :: RECURSIVIDADE function multiplicador($variavel, $x = 3){ return $variavel * $x; $a = 10; echo multiplicador($a,10); function fatorial($n){ if($n == 1) return 1; else return $n * fatorial($n - 1); echo fatorial(4); EXEMPLO 7 :: ESTILO HEREDOC EXEMPLO 8 :: FUNÇÕES STRINGS $texto = <<<CHAVE Concurso Público <br> Aeronáutica <br> Brasil CHAVE; echo $texto; $min = "brasil"; $max = "ARGENTINA"; echo strtoupper($min); echo strtolower($max);
EXEMPLO 9 :: FUNÇÕES STRINGS EXEMPLO 10 :: FUNÇÕES STRINGS $nome = "Leonardo"; $nome = "Olá"; echo substr($nome, 1); echo str_repeat($nome, 3); echo substr($nome, 1, 4); echo strlen($nome); echo substr($nome, -1); echo substr($nome, -3, 2); echo substr($nome, -3, -2); EXEMPLO 11 :: FUNÇÕES STRINGS EXEMPLO 12 :: ARRAY $frase = "O leão roeu a roupa do rei"; $cores = array("azul", "amarelo", "preto"); echo str_replace("leão", "rato",$frase); echo $cores[1]; echo strpos($frase, "roupa"); $nomes[] = "Leonardo"; $nomes[] = "Isabella"; echo chop($frase, "rei"); echo $nomes[0]; echo ord("m"); echo $nomes[1];
EXEMPLO 13 :: ARRAY ASSOCIATIVO EXEMPLO 14 :: ARRAY MULTIDIMENSIONAL $carros = array( $carros = array( "amarelo" => "fox", "preto" => "siena", "branco" => "logan "Cruze" => array("cor"=>"preto", "potencia"=> "2.0"), "Camaro" => array("cor"=>"cinza", "potencia"=> "2.4") ); ); echo $carros ["Cruze"]["cor"]; echo $carros ["Camaro"]["potencia"]; echo $carros["preto"]; EXEMPLO 15 :: FUNÇÕES ARRAY EXEMPLO 16 :: FUNÇÕES ARRAY $letras = array("a", "B", "C", "D", "E"); echo "Insere no final"; array_push($letras, "F"); $letras = array("a", "b"); $numeros = array(1, 2); $resultado = array_merge($letras, $numeros); echo "Remove do final ; array_pop($letras); echo count($resultado); echo "Remove do inicio ; array_shift($letras); $s1 = array_slice($resultado, 1); echo "Insere no inicio ; array_unshift($letras, "A"); $s2 = array_slice($resultado, -4, 2); echo "Inverte os elementos : $rletras = array_reverse($letras); foreach($rletras as $l) echo $l; $s3 = array_slice($resultado, 0, 3); $s4 = array_slice($resultado, -2, -2);
EXEMPLO 17 :: FUNÇÕES ARRAY EXEMPLO 18 :: ORDENANDO ARRAYS $assoc = array( "BR" => "Brasil", "CH" => "Chile", "FR" => "França", "JP" => "Japao"); $chaves = array_keys($assoc); foreach($chaves as $c) echo $c." "; $valores = array_values($assoc); foreach($valores as $v) echo $v." "; $frutas = array( "Maça", "Pera", "Abacaxi", "Uva ); sort($frutas); foreach($frutas as $a) echo $a." "; rsort($frutas); foreach($frutas as $a) echo $a." "; EXEMPLO 19 :: ORDENANDO ARRAYS EXEMPLO 20 :: EXPLODE E IMPLODE $paises = array( 4 => "Brasil", 2 => "Chile", 3 => "França", 1 => "Japao"); asort($paises); arsort($paises); ksort($paises); krsort($paises); $data = "23/01/2014"; $partes = explode("/", $data); foreach ($partes as $p) echo $p." "; $data = array("31","12","2004"); $s = implode("/", $data); echo $s;
EXEMPLO 21 :: FUNÇÕES NUMÉRICAS EXEMPLO 21 :: FUNÇÕES NUMÉRICAS $n = 3.4; echo rand(); echo abs($n); echo ceil($n); $n = 5.6; echo round($n); echo max(10, 5); echo min(10, 5); echo floor($n); echo pow(5, 2); echo sqrt(9);