PHP
Aula 3Strings, Funções e Arrays Professor: Leonardo Pereira E-mail: leongamerti@gmail.com
Facebook: leongamerti
Material de Estudo: http://www.leonti.vv.si
F
UNÇÕESI
NTRODUÇÃOUma 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.
C
RIAÇÃOUsamos 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
E
XEMPLO <?php 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.
V
ARIÁVEISG
LOBAISTodas 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.
E
XEMPLO <?php $p = 30; function porcentagem($numero){ global $p; return ($numero*$p)/100; } ?>Essa função retorna 30% do valor passado como
argumento.
V
ARIÁVEISE
STÁTICASDentro 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.
E
XEMPLO<?php
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
?>
P
ASSAGEM DEP
ARÂMETROSExistem dois tipos de passagem de parâmetros: por valor
por referência
Por padrão, os valores são passados por valor.
P
ASSAGEMP
ORV
ALOR<?php
function incrementa($variavel, $valor){ $variavel += $valor) } $a = 10; 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.
P
ASSAGEMP
ORR
EFERÊNCIA<?php
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.
V
ALORESP
ADRÃOO PHP permite definir valores default para
parâmetros. <?php
function incrementa(&$variavel, $valor = 40){ $variavel += $valor; } $a = 10; incrementa ($a); echo $a; // 50 ?>
Se o programador executar a função sem especificar
o parâmetro, será assumido o valor 40.
R
ECURSÃO <?php function fatorial($numero){ if($numero == 1) return $numero; elsereturn $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.
S
TRINGSI
NTRODUÇÃOUma string é uma cadeia de caracteres
alfanuméricas.
Para declarar uma string podemos utilizar aspas
simples ou aspas duplas. $variavel = “Teste 1”; $variavel = ‘Teste 1’;
A
SPASS
IMPLES EA
SPASD
UPLASA 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. <?php
$fruta = “maça”;
echo “Gosto de $fruta”; // Gosto de maça echo ‘Gosto de $fruta’; // Gosto de $fruta ?>
S
TRING DEN
LINHASTambém podemos declarar uma string com muitas
linhas observando a sintaxe a seguir. <?php
$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.
C
ONCATENAÇÃOPara unir strings podemos usar o operador ponto
ou colocar múltiplas variáveis dentro de aspas duplas.
<?php
$bebida = “suco”; $lanche = “sanduiche”;
echo “Eu gosto de $lanche e $bebida”; echo “Eu gosto de “.$lanche.” e ”.$bebida; ?>
F
UNÇÕES DES
TRINGExistem 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”;
F
UNÇÕES DES
TRINGsubstr: 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.
F
UNÇÕES DES
TRINGstr_repeat: repete uma string uma certa
quantidade de vezes.
1 – entrada
2 - quantidade de repetições
$txt = “Ola”;
echo str_repeat($txt, 2) // OlaOla
F
UNÇÕES DES
TRINGstrlen: 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
F
UNÇÕES DES
TRINGstrpos: 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.
A
RRAYSI
NTRODUÇÃOOs 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.
C
RIANDO UMA
RRAYArrays 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
A
RRAYS ASSOCIATIVOSO 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
I
TERAÇÕES<?php
$nomes = array(“Leonardo”, “Bruno”, “Igor”); foreach($nomes as $chave => $valor){
echo $valor; ?>
A
RRAYSM
ULTIDIMENSIONAISUm array multidimensional ou matriz é aquele em
que em alguma posição existe um outro array.
Também e criado com a função array().
<?php
$carros = array(“Palio”=> array(“cor”=>”azul”, “potencia”=>”1.0”), “Corsa” => array(“cor”=>”preto”,
“potencia”=>”1.8”) );
echo $carros [“Corsa”][“cor”]; // preto ?>
F
UNÇÕES DEA
RRAYarray_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.
F
UNÇÕES DEA
RRAYarray_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.
F
UNÇÕES DEA
RRAYsort: 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.
F
UNÇÕES DEA
RRAYexplode: 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);
F
UNÇÕESM
ATEMÁTICASI
NTRODUÇÃOO 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.
I
NTRODUÇÃOround— 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.
E
MAILE
NVIO DEE
MAILO 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.
E
XEMPLO1 :: F
UNÇÕES <?php function somar($a, $b){ return $a + $b; } echo somar(3,5); ?>E
XEMPLO2 :: V
ARIÁVELG
LOBAL<?php function imprimir(){ echo $nome; } $nome = "Leonardo"; imprimir(); ?>
E
XEMPLO3 :: P
ASSAGEM DEP
ARÂMETRO<?php function incrementar1($d){ $d++; } function incrementar2(&$d){ $d++; } $c = 10; incrementar1($c); echo $c; $c = 10; incrementar2($c); echo $c; ?>
E
XEMPLO4 :: V
ARIÁVELE
STÁTICA<?php
function percorre($km){ $total = 100; $total -= $km;
echo "Faltam $total kms”; }
percorre(10); percorre(40); ?>
E
XEMPLO5 :: V
ALORP
ADRÃO <?php function multiplicador($variavel, $x = 3){ return $variavel * $x; } $a = 10; echo multiplicador($a,10); ?>E
XEMPLO6 :: R
ECURSIVIDADE <?php function fatorial($n){ if($n == 1) return 1; else return $n * fatorial($n - 1); } echo fatorial(4); ?>E
XEMPLO7 :: E
STILOHEREDOC
<?php $texto = <<<CHAVE Concurso Público <br> Aeronáutica <br> Brasil CHAVE; echo $texto; ?>
E
XEMPLO8 :: F
UNÇÕESS
TRINGS<?php $min = "brasil"; $max = "ARGENTINA"; echo strtoupper($min); echo strtolower($max); ?>
E
XEMPLO9 :: F
UNÇÕESS
TRINGS <?php $nome = "Leonardo"; echo substr($nome, 1); echo substr($nome, 1, 4); echo substr($nome, -1); echo substr($nome, -3, 2); echo substr($nome, -3, -2); ?>E
XEMPLO10 :: F
UNÇÕESS
TRINGS<?php
$nome = "Olá";
echo str_repeat($nome, 3); echo strlen($nome);
?>
E
XEMPLO11 :: F
UNÇÕESS
TRINGS<?php
$frase = "O leão roeu a roupa do rei"; echo str_replace("leão", "rato",$frase); echo strpos($frase, "roupa");
echo chop($frase, "rei"); echo ord("M");
?>
E
XEMPLO12 :: A
RRAY<?php
$cores = array("azul", "amarelo", "preto"); echo $cores[1]; $nomes[] = "Leonardo"; $nomes[] = "Isabella"; echo $nomes[0]; echo $nomes[1]; ?>
E
XEMPLO13 :: A
RRAYA
SSOCIATIVO <?php $carros = array( "amarelo" => "fox", "preto" => "siena", "branco" => "logan“ ); echo $carros["preto"]; ?>E
XEMPLO14 :: A
RRAYM
ULTIDIMENSIONAL<?php
$carros = array(
"Cruze" => array("cor"=>"preto", "potencia"=> "2.0"), "Camaro" => array("cor"=>"cinza", "potencia"=> "2.4") );
echo $carros ["Cruze"]["cor"]; echo $carros ["Camaro"]["potencia"];
?>
E
XEMPLO15 :: F
UNÇÕESA
RRAY<?php
$letras = array("A", "B", "C", "D", "E"); echo "Insere no final";
array_push($letras, "F"); echo "Remove do final”; array_pop($letras); echo "Remove do inicio”; array_shift($letras); echo "Insere no inicio”; array_unshift($letras, "A"); echo "Inverte os elementos”: $rletras = array_reverse($letras); foreach($rletras as $l)
echo $l; ?>
E
XEMPLO16 :: F
UNÇÕESA
RRAY<?php
$letras = array("a", "b"); $numeros = array(1, 2);
$resultado = array_merge($letras, $numeros); echo count($resultado); $s1 = array_slice($resultado, 1); $s2 = array_slice($resultado, -4 , 2); $s3 = array_slice($resultado, 0 , 3); $s4 = array_slice($resultado, -2 , -2); ?>
E
XEMPLO17 :: F
UNÇÕESA
RRAY <?php $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." "; ?>E
XEMPLO18 :: O
RDENANDOA
RRAYS<?php
$frutas = array(
"Maça", "Pera", "Abacaxi", "Uva“ ); sort($frutas); foreach($frutas as $a) echo $a." "; rsort($frutas); foreach($frutas as $a) echo $a." "; ?>
E
XEMPLO19 :: O
RDENANDOA
RRAYS<?php $paises = array( 4 => "Brasil", 2 => "Chile", 3 => "França", 1 => "Japao"); asort($paises); arsort($paises); ksort($paises); krsort($paises); ?>
E
XEMPLO20 :: E
XPLODE EI
MPLODE<?php
$data = "23/01/2014";
$partes = explode("/", $data); foreach ($partes as $p) echo $p." "; $data = array("31","12","2004"); $s = implode("/", $data); echo $s; ?>
E
XEMPLO21 :: F
UNÇÕESN
UMÉRICAS <?php $n = 3.4; echo rand(); echo abs($n); echo ceil($n); echo floor($n); ?>E
XEMPLO21 :: F
UNÇÕESN
UMÉRICAS<?php $n = 5.6; echo round($n); echo max(10, 5); echo min(10, 5); echo pow(5, 2); echo sqrt(9); ?>