if, else e elseif
switch
while
for
PHP é um software livre, ou seja, está disponível para ser utilizada gratuitamente.
Além disso, ela não te limita a um sistema operacional, ela pode ser usada em qualquer um, proporcionando assim, mais liberdade.
Você pode consultar sua documentação e fazer download no site php.net.
O php possui um modo interativo e com ele vamos executar nosso primeiro código. Com o terminal aberto digite o seguinte comando:
php -a
Digite: echo "Olá, mundo"; e pressione enter.
Pronto! Assim o seu código será executado.
Para sair do modo interativo do PHP, digite:
ctrl + c ou exit
Você também pode criar um arquivo de texto e executá-lo no terminal! Recomendamos o uso do Visual Studio Code ou Codium.
<?php
echo 'Olá, mundo!';
Com o terminal aberto, digite:
php ola_mundo.php
Pressione enter. Desta forma o terminal irá executar seu arquivo PHP.
Importante! É recomendável que você esteja na raiz do projeto para executá-lo.
O VSCode ou Codium tem um terminal embutido. Para abrir clique em Terminal/NewTerminal em seguida digite:
php ola_mundo.php
Pressione enter. Desta forma o terminal irá executar seu arquivo PHP.
Importante! É recomendável que você esteja na raiz do projeto para executá-lo.
Exemplo:
$meu_nome = "Ana";
// uso de CamelCase
$DataAniversario
// primeira minúscula e segunda maiúscula
$dataAniversario
// uso de underline
$data_Aniversario
Quais nomes de variáveis estão incorretos?
Quais nomes de variáveis estão incorretos?
<?php
$inteiro = 23; // inteiro
$float = 4.50; //float
$string = 'Olá, mundo!'; //string
$boleeano = TRUE; // boleano
// imprime na tela integer
echo gettype($inteiro) . PHP_EOL;
// imprime na tela double
echo gettype($float) . PHP_EOL;
// imprime na tela string
echo gettype($string). PHP_EOL;
// imprime na tela boolean
echo gettype($boleeano) . PHP_EOL;
var_dump($inteiro);
// int(23)
var_dump($float);
// float(4.5)
var_dump($string);
// string(12) "Olá, mundo!"
var_dump($boleeano);
// bool(true)
<?php
$vaiChover = true; //boolean
$idade = 27; //interger
$pi = 3.1415; //float
$meu_Nome = "Maria"; //string
Nota: Para checar o tipo e valor de uma expressão, utilize a função var_dump().
O operador básico de atribuição é o =
O valor de "$a = 3" é 3, ou seja $a recebe 3
Isto permite que você faça alguns truques:
<?php
$a = ($b = 4) + 5;
$a é igual a 9 agora e $b foi definido como 4
Além do operador básico de atribuição, há os "operadores combinados", que permitem a você pegar um valor de uma expressão adicionar usar seu próprio valor ao resultado.
<?php
$a = 3;
$a += 5;
Define $a para 8, como se disséssemos: $a = $a + 5;
Exemplo | Nome | Resultado |
---|---|---|
$a == $b | Igual | Verdadeiro (TRUE) se $a é igual a $b. |
$a === $b | Idêntico | Verdadeiro (TRUE) se $a é igual a $b, e eles são do mesmo tipo. |
$a != $b $a <> $b |
Diferente | Verdadeiro se $a não é igual a $b. |
$a < $b | Menor que | Verdadeiro se $a é menor que $b. |
$a > $b | Maior que | Verdadeiro se $a é estritamente maior que $b. |
$a <= $b | Menor ou igual | Verdadeiro se $a é menor ou igual a $b. |
$a >= $b | Maior ou igual | Verdadeiro se $a é maior ou igual a $b. |
<?php
var_dump(0 == "0.0");
// 0 == 0 -> true
var_dump("1" == "01");
// 1 == 1 -> true
var_dump("10" < "3");
// 10 < 3 -> false
var_dump(100 >= "100");
// 100 >= 100 -> true
var_dump( 2 >= '2');
// 2 >= 100 -> true
var_dump( 'Olá, mundo' == 'Olá, Mundo');
// Olá, mundo == Olá, Mundo -> false
var_dump( 'Olá, mundo' == 'Olá, mundo');
// Olá, mundo == Olá, mundo -> true
Considere 4 variáveis a, b, c e d. Dado que:
Verifique e imprima na tela:
Foi criado por George Boole(1815-1864), são a base da computação.
Exemplo | Nome | Resultado |
---|---|---|
$a and $b $a && $b |
E | Verdadeiro (TRUE) se tanto $a quanto $b são verdadeiros. |
$a or $b $a || $b |
OU | Verdadeiro se $a ou $b são verdadeiros. |
$a xor $b | XOR | Verdadeiro se $a ou $b são verdadeiros, mas não ambos. |
! $a | NÃO | Verdadeiro se $a não é verdadeiro. |
<?php
$a = true;
$b = false;
$j = ($a && $b);
$k = ($a || $b);
$l = ($a and $b);
$m = ($a or $b);
var_dump($j); //false
var_dump($k); //true
var_dump($l); //false
var_dump($m); //true
Há dois operadores de string.
<?php
$a = "Olá ";
$b = $a . "mundo!"; // agora $b contém "Olá mundo!"
$a = "Olá ";
$a .= "mundo!"; // agora $a contém "Olá mundo!"
Manipular strings no desenvolvimento web é muito comum e se faz necessário em diversos casos. O PHP oferece diversas funções que fazem este trabalho pra nós. Confira!
<?php
echo strlen("PHPWomenBR");
// output: 10
echo strtolower("PHPWOMENBR");
// output: phpwomenbr
echo strtoupper("phpwomenbr");
// output: PHPWOMENBR
strlen - função para contar letras.
strlower - deixa as letras minúsculas.
strtoupper- deixa as letras maiúsculas
Em php eles também são simples e têm a mesma simbologia em todas as linguagens de programação.
1ª Parênteses ( )
2ª Potenciação **
3ª Multiplicação, Divisão e Módulo(resto da divisão) *, /, %,
4ª Adição e Subtração +, -
<?php
$x = 5;
$y = 3;
$z = 2;
$expressao = $x + ($y ** $z) / $z;
echo $expressao;
10 min
Para sair do modo interativo: use crtl + c ou exit
Calculando a média de um aluno
1) Crie duas variáveis $nota1 = 8.0; e $nota2 = 9.0; que correspondem a 2 notas de um aluno.
2) A seguir, calcule a média e exiba na tela a média deste aluno.
10 min
Uma Estrutura de Controle é um bloco de programação que analisa variáveis e escolhe uma direção para seguir baseado nos parâmetros pré-definidos.
O if é uma estrutura de controle que insere um desvio na execução natural do programa. Caso a condição do if seja satisfeita, o programa irá executar as instruções do seu bloco de comandos.
<?php
$a = 5;
$b = 2;
if ($a > $b) {
echo "a é maior que b";
}
Caso a condição do if não seja satisfeita podemos utilizar o else.
<?php
$a = 1;
$b = 2;
if ($a > $b) {
echo "a é maior que b";
} else {
echo "a NÃO é maior que b";
}
Caso a condição do if não seja satisfeita utilizando o else, também podemos criar várias condições usando elseif. Ele executará uma expressão alternativa somente se a expressão condicional do elseif for avaliada como TRUE. Podemos ter vários elseif, porém só um else.
<?php
$a = 5;
$b = 2;
if ($a > $b) {
echo "a é maior que b";
} elseif ($a == $b) {
echo "a é igual a b";
} else {
echo "a é menor que b";
}
Maria está no primeiro ano do ensino médio. Neste semestre, maria teve 3 provas na disciplina de português. Na primeira prova, tirou nota 8. Na segunda, estava com problemas pessoais e acabou não tendo tempo de estudar, por isso tirou nota 5. Na terceira prova, Maria correu atrás do prejuízo e tirou nota 9 na prova.
Crie um programa que verifique se Maria vai conseguir passar de ano direto ou vai ficar de recuperação. Sabendo que a média para passar direto deve ser maior ou igual a 6.0 e, caso a média esteja menor que 4, o aluno é reprovado sem recuperação
O programa deve exibir na tela se ela Maira está aprovada, reprovada ou em recuperação.
A declaração switch é similar a uma série de declarações if na mesma expressão. Em muitos casos, se deseja comparar a mesma variável com diferentes valores e executar pedaços diferentes de código dependendo de qual valor ela possui.
<?php
$idioma = "Português";
switch ($idioma) {
case "Português";
echo "Bem vindo";
break;
case "Inglês":
echo "Welcome";
break;
case "Espanhol":
echo "Bienvenido";
break;
}
O while é uma estrutura de repetição que possui uma condição para poder ser executada. Ele estabelece um laço de repetição do seu bloco de comandos, até que a condição seja satisfeita.
No exemplo a seguir estamos imprimindo de 1 até 10.
<?php
$i = 1;
while ($i <= 10) {
echo $i++ . PHP_EOL;
}
<?php
$i = 1;
while ($i <= 10) {
echo $i . PHP_EOL;
$i++;
}
1. Construa um código para imprimir de 10 até 1 no terminal
2. Construa um código para imprimir de 2 até 20 pulando de 2 em 2.
$i = ?; //inicialize seu contador
while ( ) { //determine um ponto de parada
echo $i++; //coloque a função para quebrar linha
}
O for é uma estrutura de repetição parecida com while, porém baseado em um contador. Ele é composto por um bloco com três expressões que estabelecem uma contagem. No exemplo a seguir estamos imprimindo de 1 até 10 utilizando o for
<?php
for ($i = 1; $i <= 10; $i++) {
echo $i . PHP_EOL; //PHP_EOL para quebrar linha.
}
Escreva um algoritmo que receba dois valores inteiros e imprima todos os valores entre eles considerando os valores digitados, veja o exemplo:
Primeiro Valor = 5 Segundo Valor = 15 Imprime: 5 6 7 8 9 10 11 12 13 14 15
Utilizando a estrutura de repetição for, imprima a tabuada do número 5.
Dicas:
- Não esqueça de utilizar a função PHP_EOL para quebrar linha.
- O 5 pode ser um valor fixo, ou seja: echo "5 x $i=" . 5 * $i;
Uma forma de se criar um array é declarar uma variável e atribuir a ela um par de chaves[ ].
Dentro dessas chaves, você armazena os valores que quiser, separados por vírgula.
<?php
$frutas=['banana', 'abacaxi', 'laranja'];
var_dump($frutas);
Outra forma de se criar um array é através da função array(), onde são colocados os valores dentro dos parenteses, separados por vírgula.
Veja o mesmo exemplo anterior só que com essa sintaxe:
<?php
$frutas=array('banana', 'abacaxi', 'laranja');
var_dump($frutas);
Os valores do array são armazenados dentro de chaves e podem receber os seguintes tipos:
OBS: Arrays e objetos não podem ser usados como chaves. Fazer isso resultará em um aviso: `Illegal offset type`.
Podemos criar chaves personalizadas para nosso array utilizando “=>“, onde a esquerda teremos o nome da chave e a direita o valor da chave.
<?php
$pessoa = [
'nome' => 'Joana',
'sobrenome' => 'Silva',
'idade' => '23'
];
var_dump($pessoa);
Para exibir os dados de uma maneira mais legível podemos acrescentar o código abaixo:
echo "Nome: " . $pessoa["nome"] . "\n";
echo "Sobrenome: " . $pessoa["sobrenome"] . "\n";
echo "Idade: " . $pessoa["idade"] . "\n";
Veja o código completo
<?php
$pessoa = [
'nome' => 'Joana',
'sobrenome' => 'Silva',
'idade' => '23'
];
var_dump($pessoa);
echo 'Nome: ' . $pessoa['nome'] . PHP_EOL;
echo 'Sobrenome: ' . $pessoa['sobrenome'] . PHP_EOL;
echo 'Idade: ' . $pessoa['idade'] . PHP_EOL;
Assim, terá na tela a seguinte impressão:
array(3) {
["nome"]=>
string(5) "Joana"
["sobrenome"]=>
string(5) "Silva"
["idade"]=>
string(2) "23"
}
Nome: Joana
Sobrenome: Silva
Idade: 23
Se vários elementos na declaração do array utilizam a mesma chave, apenas o último será utilizado, enquanto todos os outros serão sobrescritos.
<?php
$array = [
1 => 'a',
'1' => 'b',
1.5 => 'c',
true => 'd',
];
var_dump($array);
O exemplo anterior terá como saída:
array(1) {
[1]=>
string(1) "d"
}
Como todas as chaves do exemplo foram convertidas para 1, o valor será sobrescrito a cada novo elemento e o valor final atribuído "d", será o único que restará.
As chaves dos arrays no PHP podem conter, ao mesmo tempo, inteiro e string, por que o PHP não faz distinção entre arrays indexados e associativos.
<?php
$array = [
'carro' => 'Gol',
'animal' => 'Gato',
100 => -100,
-100 => 100,
];
var_dump($array);
E terá a seguinte saída na tela:
array(4) {
['carro']=>
string(3) 'Gol'
['animal']=>
string(4) 'Gato'
[100]=>
int(-100)
[-100]=>
int(100)
}
E terá a seguinte saída na tela:
<?php
$array = ['banana', 'maçã', 'hello', 'world'];
var_dump($array);
array(4) {
[0]=>
string(6) "banana"
[1]=>
string(4) "maçã"
[2]=>
string(5) "hello"
[3]=>
string(5) "world"
}
É possível especificar a chave somente para alguns elementos e omití-las para outros:
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[6]=>
string(1) "c"
[7]=>
string(1) "d"
}
$array = [
'a',
'b',
6 => 'c',
'd',
];
var_dump($array);
Saída na tela
O último valor "d" foi atribuído a chave 7. Isso acontece porque a chave com maior inteiro antes dela era 6
Elementos do array podem ser acessados utilizando a sintaxe array[chave]
<?php
$array = [
'foo' => 'bar',
42 => 24,
'multi' => [
'dimensional' => [
'array' => 'foo'
]
]
];
var_dump($array['foo']);
var_dump($array[42]);
var_dump($array['multi']['dimensional']['array']);
Terá a seguinte saída na tela:
string(3) "bar"
int(24)
string(3) "foo"
Você pode modificar um array existente atribuindo valores a ele.
$arr[chave] = valor;
$arr[] = valor;
// chave pode ser tanto um integer quanto uma string
// valor pode ser qualquer valor de qualquer tipo
Se ainda $arr não existir, será criado, servindo como alternativa para criação de um array.
Para mudar um certo valor, apenas atribua um novo valor para um elemento especificado por sua chave. Se você quiser remover um par chave/valor, você precisa aplicar a função unset() nele.
<?php
$arr = array(5 => 1, 12 => 2);
$arr[] = 56; // Isto é o mesmo que $arr[13] = 56;
$arr["x"] = 42; // Isto acrescenta um novo elemento
// para o array com a chave "x"
unset($arr[5]); // Isto remove um elemento do array
unset($arr); // E isto apaga todo o array
O construtor foreach fornece uma maneira fácil de iterar sobre arrays. O foreach funciona somente em arrays e objetos e possui duas sintaxes:
foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
A primeira forma, itera sobre o array trazendo somente o valor e a segunda tras a chave e o valor.
<?php
$arr = [1, 2, 3, 4];
foreach ($arr as $key => $value) {
$arr[$key] = $value * 2;
}
var_dump($arr);
// $arr is now array(2, 4, 6, 8)
Para modificar diretamente elementos de um array dentro de um laço atribua um novo valor a cada iteração.
Crie um código que preencha um array A de 10 elementos (índices de 0 a 9) com os números inteiros 10, 20, 30, 40, ... , 100.
Imprima o vetor A após o seu preenchimento.
Veja a representação abaixo
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 |
Escreva um algoritmo para preencher e imprimir dois arrays A e B, sendo:
0 | 1 | 2 | 3 |
---|---|---|---|
2 | 4 | 6 | 8 |
0 | 1 | 2 | 3 |
---|---|---|---|
1 | 3 | 5 | 7 |
O PHP oferece de forma nativa mais de 81 funções para manipular arrays. Essas funções permitem diversas operações. Vamos conhecer alguns exemplos.
<?php
$frutas = ['banana','maçã', 'laranja'];
echo count($frutas);
Algumas vezes é necessário contar os elementos de um array, para isso podemos utilizar a função count(), ela retorna o número de posições do array.
<?php
$frutas = ['banana','maçã', 'laranja'];
array_push($frutas, "limão", "uva");
print_r($frutas);
/* saída:
Array
(
[0] => banana
[1] => maçã
[2] => laranja
[3] => limão
[4] => uva
)
*/
Com a função array_push() é possível adicionar um elemento no array. O novo elemento é adicionado na última posição do array.
<?php
$cesta = ['laranja', 'banana'];
array_unshift($cesta, 'melancia', 'morango');
print_r($cesta);
/* saída
Array
(
[0] => melancia
[1] => morango
[2] => laranja
[3] => banana
) */
A função array_unshift() adiciona os elementos passados como argumentos no início de array.
<?php
$cesta = ["laranja", "banana", "melancia", "morango"];
$fruta = array_shift($cesta);
print_r($cesta);
/* saída
Array
(
[0] => banana
[1] => melancia
[2] => morango
)*/
Retira o primeiro elemento de array. Todas as chaves numéricas são alteradas para começar a contar a de 0 (zero), enquanto chaves string permanecerão inalteradas.
<?php
$cesta = ["laranja", "banana", "melancia", "morango"];
$fruta = array_pop($cesta);
print_r($cesta);
/* saída
Array
(
[0] => laranja
[1] => banana
[2] => melancia
) */
A função array_pop() extrai e retorna o último elemento de array, diminuindo array em um elemento.
Os elementos contidos em um array podem ser ordenados, em ordem alfabética ou numérica e de forma crescente, ou decrescente. Para isso, utilizamos as funções envolvendo sort.
<?php
$frutas = ['limão', 'laranja', 'banana', 'maçã'];
sort($frutas);
//imprimir o array
foreach ($frutas as $chave => $valor) {
echo "frutas[" . $chave . "] = " . $valor . PHP_EOL;
}
/* saída
frutas[0] = banana
frutas[1] = laranja
frutas[2] = limão
frutas[3] = maçã
*/
Podemos utilizar tanto para organizar de forma crescente alfabética, como numérica a função sort().
<?php
$frutas = ['limão', 'laranja', 'banana', 'maçã'];
rsort($frutas);
//imprimir o array
foreach ($frutas as $chave => $valor) {
echo "frutas[" . $chave . "] = " . $valor . PHP_EOL;
}
/* saída
frutas[0] = maçã
frutas[1] = limão
frutas[2] = laranja
frutas[3] = banana
*/
Organiza o array em ordem decrescente.
<?php
$frutas = [
'd' => 'limao',
'a' => 'laranja',
'b' => 'banana',
'c' => 'melancia'];
asort($frutas);
foreach( $frutas as $chave => $valor ){
echo "$chave = $valor" . PHP_EOL;
}
/* saída
b = banana
a = laranja
d = limao
c = melancia
*/
Coloca na ordem crescente, de acordo com o valor.
<?php
$frutas = [
'd' => 'limao',
'a' => 'laranja',
'b' => 'banana',
'c' => 'melancia'];
arsort($frutas);
foreach( $frutas as $chave => $valor ){
echo "$chave = $valor" . PHP_EOL;
}
/* saída
c = melancia
d = limao
a = laranja
b = banana
*/
Coloca na ordem decrescente, de acordo com o valor.
<?php
$frutas = [
'd' => 'limao',
'a' => 'laranja',
'b' => 'banana',
'c' => 'melancia'];
ksort($frutas);
foreach( $frutas as $chave => $valor ){
echo "$chave = $valor" . PHP_EOL;
}
/* saída
a = laranja
b = banana
c = melancia
d = limao
*/
Ordena um array pelas chaves.
<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
echo "Tem Irix";
}
if (in_array("mac", $os)) {
echo "Tem mac";
}
// saída: Tem Irix
Checa se um valor existe em um array.
A segunda condicional falha pois in_array() diferencia letras minúsculas e maiúsculas.
<?php
$cesta = ["laranja", "banana", "melancia", "morango"];
$inverso = array_reverse($cesta);
print_r($inverso);
?>
```
/*
Array
(
[0] => morango
[1] => melancia
[2] => banana
[3] => laranja
)
*/
Retorna um array com os elementos na ordem inversa.
<?php
$a = [1,2,3,4,5,6,7,8,9];
$soma = array_sum($a);
echo $soma;
//saída: 45
Retorna o somatório dos elementos do array.
1. Crie um programa em PHP que receba 5 nomes, os coloque em um vetor e exiba a lista desses nomes na tela.
Após exibir essa lista, o programa deve mostrar também os nomes na ordem inversa, um por linha.
0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|
Maria | João | Paula | Luiza | José |
2. Agora verifique se existe um nome especifíco no array da questão anterior. Pesquise "Maria" e depois pesquise "Ana".
3. Crie um programa em PHP que some os elementos de um array. Veja o exemplo:
0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|
65 | 41 | 8 | 12 | 33 |
4. Crie um programa em PHP que utilize uma função para ordenar os elementos do vetor da questão anterior em ordem crescente. Mostre o vetor ordenado.
Para fixar nosso aprendizado, vamos resolver exercícios na aula de hoje.
Primeiramente, vamos recapitular o que aprendemos:
- Tipos de dados e operadores
- Manipulação de strings
- Estruturas if / else / elseif / switch
- Estruturas for / while
- Manipulação de arrays
- Funções de manipulação de array
Crie um programa em PHP que receba um valor, calcule e mostre para o usuário 5% e 50% deste valor.
Crie um programa em PHP que receba uma temperatura em graus Farenheit e converta para graus Celsius.
Considere a temperatura de 86º F.
Fórmula: ((F – 32) * 5) / 9
3. Crie um programa em PHP que receba nome e sobrenome de uma pessoa. Em seguida, imprima-os concatenados.
Veja o exemplo:
Nome: PHPWomen
Sobrenome: BR
4. Verifique quantos caracteres o nome inteiro da questão anterior possui. Imprima-o todo em letras maiúsculas.
5. Crie um programa em PHP que receba duas notas, calcule a média e mostre para o usuário.
Se a média for maior ou igual a 6, imprima "Aluno aprovado".
Se a média for menor que 6, exiba "Prova final".
6. Crie um programa em PHP que receba a idade de uma pessoa e informe se é maior ou menor de idade.
7. Crie um programa em PHP com uma lista de estados (ex.: RJ, SP, MG). Se este estado for SP, escreva Paulista, se RJ, escreva Carioca, se MG, escreva Mineiro. Caso seja outro estado, escreva Outro Estado.
Dica: Utilize o comando switch.
8. Crie um programa em PHP que o usuário escolha uma operação (soma, subtração, multiplicação ou divisão) e receba 2 números. Realize a operação escolhida e mostre o resultado, como em uma calculadora.
Dica: Utilize o comando switch.
9. Crie um programa em PHP que mostre os números de 0 a 20, de 2 em 2.
10. Crie um programa em PHP que receba dois números inteiros e imprima os números inteiros que estão no intervalo entre eles.
11. Crie um programa em PHP que contenha um array com 10 elementos inteiros.
Depois, troque todos os valores negativos do array por 0.
Após as trocas, imprima o array.
12. Crie um programa em PHP que mostre um array com três estados e suas capitais.
Veja o exemplo: "SP" => "São Paulo".
Vamos imprimir o seguinte resultado:
A capital de SP é São Paulo
A capital de RJ é Rio de Janeiro
A capital de MG é Belo Horizonte.
13. Crie um programa em PHP ordene um array em ordem decrescente. Veja o exemplo:
14. Utilize uma função em PHP para contar quantos valores possui o array da questão anterior.
0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|
2 | 4 | 1 | 5 | 3 |
Uma função é um bloco de código identificado por um nome, que executa uma tarefa específica (assim como usamos função na matemática) e que pode ser referenciada a partir de várias partes do código.
Veja um exemplo simples de função matemática:
f(x) = x * 2
f(3) = 3 * 2 = 6
Functions são trechos de código que podem executar qualquer tipo de tarefa como por exemplo:
- Somar dois números,
- Verificar se é um CPF está correto
- Verificar se um valor de uma variável é válido
- Transformar letras maiúsculas em minúsculas...
A declaração de funções no PHP é feita a partir da palavra reservada function, seguida do nome da função e de sua lista de argumentos, enquanto o corpo da função é delimitado por chaves { }, entre as quais ficarão as instruções a serem executadas quando a função for invocada.
function nomeFuncao($par1, $par2, $par3...$parN) {
//instruções
}
> Nem sempre os parâmetros são necessários, então pode-se omiti-los na definição da função, mantendo apenas os parênteses.
As funções void ou sem retorno apenas executam uma série de comandos sem a obrigação de devolver um valor específico como resultado.
Já as funções com retorno, ao serem executadas, resultam diretamente em um dado valor que, no PHP, não tem tipo de dado definido.
Este nome é dado quando ocorre uma chamada de determinada função a ela mesma.
Um exemplo bastante conhecido é a função de cálculo do fatorial de um número.
Text
Crie um programa em PHP que contenha uma função que recebe como parâmetro um número inteiro e devolve o seu dobro.
Crie uma função que receba dois parâmetros e simule uma calculadora. O usuário deve informar qual operação deseja fazer(soma, subtração, multiplicação ou adição).
3. Crie um programa em PHP que contenha uma função que receba três notas de um aluno como parâmetros e uma letra. Se a letra for A, a função deverá calcular a média aritmética das notas do aluno; se for P, deverá calcular a média ponderada, com pesos 5, 3 e 2.
4. Crie um programa em PHP que contenha uma função para verificar se um número é positivo ou negativo. O valor de retorno será 1 se o número for positivo, -1 se for negativo e 0 se for igual a 0.
O PHP suporta funções variáveis. Isto significa que se um nome de variável tem parênteses no final, o PHP procurará uma função que tenha o mesmo nome e tentará executá-la, por exemplo, $variavel().
<?php
function olaMundo() {
echo 'Olá, mundo!'. PHP_EOL;
}
$func = 'olaMundo';
// a variável $func está rececendo a function olaMundo
$func();
// aqui estamos chamando a função variável que retorna Olá, mundo!
Exemplo 2
function olaVida($arg = ' ')
/* aqui a variável $arg está recedendo uma
string vazia como valor padrão. */
{
echo "Na função olaVida o argumento foi $arg" . PHP_EOL;
}
$func = 'olaVida';
// a variável $func está rececendo 'olaVida' como string
$func('meu argumento');
/* aqui estamos chamando a função variavel
e passando uma string como argumento.*/
Exemplo 3
function exibe($string)
{
echo $string . PHP_EOL;
}
$func = 'exibe';
// a função variável $func está rececendo a function exibe.
$func('alguma coisa');
// retorna alguma coisa
Vamos praticar?
<?php
function soma($a, $b)
{
return $a + $b;
}
function subtrai($a, $b)
{
return $a - $b;
}
$operacao = readline('Informe a operação: ');
//nome da função: soma
$valor1 = readline('Informe um valor: ');
$valor2 = readline('Informe um valor: ');
echo $operacao($valor1, $valor2) . PHP_EOL;
Funções anônimas, também conhecidas como closures, permitem a criação de funções que não tem o nome especificado.
Para atribuirmos uma função anônima a uma variável, basta declararmos um bloco e atribuirmos este, diretamente, a uma determinada variável.
<?php
$func = function($nome)
{
echo('Olá, ' . $nome . PHP_EOL);
};
$func('mundo!'); // saída Olá, mundo!
$func('PHP!'); // Olá, mundo!
Todas as funções que criamos não tem acesso ao escopo externo, logo, qualquer variável fora da função não é acessível dentro da função a não ser que passemos por argumento mas é possível também utilizar a instrução `use`. Veja o exemplo:
<?php
$mensagem = 'Olá, mundo! ';
$exemplo = function () use ($mensagem)
{
echo 'A mensagem é: '. $mensagem . PHP_EOL;
};
$exemplo();
Arrow functions foram introduzidos a partir do PHP 7.4 e são uma maneira de escrever funções mais curtas em PHP. Essa notação é útil ao passar fechamentos para funções como `array_map` ou `array_filter`.
A sintaxe da `arrow functions`é:
fn (argument_list) => expr.
Antes da arrow functions as funções eram escritas assim:
<?php
function cubo($item) {
return $item ** 3;
}
$lista = [1, 2, 3];
$resultado = array_map('cubo', $lista);
print_r($resultado);
Agora podem ser escritos assim:
<?php
$lista = [1, 2, 3];
$resultado = array_map(fn ($item) => $item ** 3, $lista);
print_r($resultado);
1. Crie uma função variável que receba uma frase e a retorne em maíusculo.
2. Crie uma função variável para calcular 10% de desconto em um determinado produto. Esta função deve retornar o valor - desconto.
3. Crie um programa em PHP que contenha uma função que receba três notas de um aluno como parâmetros e uma letra. Se a letra for A, a função deverá calcular a média aritmética das notas do aluno; se for P, deverá calcular a média ponderada, com pesos 5, 3 e 2.
4. Crie um programa em PHP que contenha uma função para verificar se um número é positivo ou negativo. O valor de retorno será 1 se o número for positivo, -1 se for negativo e 0 se for igual a 0.
O PHP é uma linguagem de programação muito rica de recursos, que ajudam muito no desenvolvimento de nossas aplicações.
Nesta aula vamos aprender sobre como utilizar funções para armazenar arquivos.
Esta função permite verificar a existência de um arquivo.
<?php
if(file_exists($nome_do_Arquivo)) {
echo "Existe" . PHP_EOL;
} else {
echo 'Arquivo não encontrado' . PHP_EOL;
}
Se o arquivo estiver em um diretório, precisa especificar o caminho: file_exists('path/filename.txt')
Esta função permite renomear um arquivo.
<?php
rename('teste.txt', 'teste.pdf');
// Arquivo teste.txt => teste.pdf
Esta função permite fazer cópia de um arquivo.
<?php
copy('teste.pdf', 'copia_de_teste.pdf');
Esta função apaga arquivos. Esta função exclui o arquivo sem sem pedir confirmaćão, por isso, use-a com bastante cuidado.
<?php
if(unlink($arquivo) == true) {
echo "Arquivo excluído";
}
Função | Descrição |
---|---|
file_get_contents( ) | Armazena todo valor de um arquivo de texto em uma variável |
fopen( ) | Abre um arquivo ou url. Recebe como parâmetro o nome do arquivo e o tipo de acesso. |
readfile() | Ela lê e exibe todo o conteúdo de um arquivo |
Dica: se você precisa trabalhar com os conteúdo do arquivo diretamente recomendável utilizar a função file_get_contents( ).
Se for o caso de apenas de exibir o conteúdo do arquivo, utilize readfile( ).
r | Abre somente para leitura |
---|---|
w | Abre somente para escrita |
w+ | Abre para leitura e escrita |
a | Abre somente para escrita; coloca o ponteiro do arquivo no final do arquivo. |
a+ | Abre para leitura e escrita; coloca o ponteiro do arquivo no final do arquivo. |
x | Cria e abre o arquivo somente para escrita; coloca o ponteiro no começo do arquivo. |
x+ | Cria e abre o arquivo para leitura e escrita; coloca o ponteiro no começo do arquivo. |
Esta função apaga arquivos. Esta função exclui o arquivo sem pedir confirmação, por isso, use-a com bastante cuidado.
<?php
if(unlink($arquivo) == true) {
echo "Arquivo excluído";
}
1. Escreva um programa em PHP que:
- Crie e abra um arquivo texto de nome 'arquivo.txt';
- Permita que o usuário grave um parágrafo de texto;
- Feche o arquivo.
Agora abra e leia o arquivo. Escreva na tela o texto armazenado.
2. Semelhante ao programa anterior, receba do usuário primeiramente o nome do arquivo que deseja trabalhar. Depois, receba um parágrafo que deve ser escrito nele. Ao final, mostre o resultado.
3. Faça um programa em PHP que receba do usuário um arquivo texto e mostre na tela quantas letras e quantas palavras ele têm.
> Dica: Utilize as funções de manipulação de strings.
4. Faça um programa em PHP que permita que o usuário entre com diversos nomes e telefones para cadastro. Crie um arquivo com essas informações, uma por linha. O usuário finaliza a entrada dos dados com '0'
csv é um tipo de arquivo de texto bastante utilizado para transferência de informações entre diferentes aplicações e também para geração de relatório.
E nesta aula vamos aprender a criar e manipular estes arquivos.
Por definição, csv é um formato de arquivo que significa “comma-separated-values” (valores separados por vírgulas), ou seja, os campos de dados indicados neste formato normalmente são separados ou delimitados por uma vírgula.
Vamos supor que você tenha uma planilha que contenha os dados a seguir:
Daiane | daiane@teste.com | 912345678 |
---|---|---|
Adriele | drica@teste.com | 987654321 |
Livia | livia@teste.com | 876543456 |
Bruna | bruna@teste.com | 998765678 |
Esses dados poderiam ser lidos em um arquivo csv separados por vírgulas e por um espaçamento de linha, como no exemplo a seguir:
Daiane,daiane@teste.com,912345678
Adriele,drica@teste.com,987654321
Livia,livia@teste.com,876543456
Bruna,bruna@teste.com,998765678
Agora que você já entendeu o conceito básico sobre csv, vamos aprender como podemos utilizar o PHP para fazer a manipulação desses arquivos.
<?php
$arquivo = fopen('nomeArquivo.csv', 'w');
<?php
fputcsv($handle, $length, $separator, $enclosure);
A função fputcsv() formata uma linha como csv e a escreve no manipulador de arquivo especificado por handle.
<?php
fputcsv($handle, $length, $separator, $enclosure);
A função fputcsv() formata uma linha como csv e a escreve no manipulador de arquivo especificado por handle. Veja a sintaxe:
Para conhecer todos os argumentos, consulte o manual do PHP
<?php
$dados = [
[
'produto' => 'Notebook', 'preco' => 3587,
],
[
'produto' => 'Celular', 'preco' => 2643,
],
[
'produto' => 'TV', 'preco' => 5876,
],
[
'produto' => 'Fone', 'preco' => 432,
],
];
// Abrir/criar arquivo
$arquivo = fopen('file.csv', 'w');
// Popular os dados
foreach ($dados as $linha) {
fputcsv($arquivo, $linha);
}
// Fechar o arquivo
fclose($arquivo);
Notebook,3587
Celular,2643
TV,5876
Fone,432
// Cabeçalho do csv
$headers = ['Produto', 'Preço'];
$dados = [
[
'produto' => 'Notebook', 'preco' => 3587,
],
[
'produto' => 'Celular', 'preco' => 2643,
],
[
'produto' => 'TV', 'preco' => 5876,
],
[
'produto' => 'Fone', 'preco' => 432,
],
];
$arquivo = fopen('file.csv', 'w');
// Criar o cabeçalho
fputcsv($arquivo , $headers);
foreach ($dados as $linha ) {
fputcsv($arquivo, $linha);
}
fclose($arquivo);
$headers = ['Produto', 'Preço'];
$dados[];
$arquivo = fopen('file.csv', 'w');
fputcsv($arquivo , $headers);
foreach ($dados as $chave => $valor) {
$produto[$chave] = $valor['produto'];
$preco[$chave] = $valor['preco'];
}
// Ordenar array dados na coluna produto em ordem crescente.
// Pode usar SORT_DESC para ordem decrescente.
array_multisort($produto, SORT_ASC, $dados);
foreach ($dados as $linha ){
fputcsv($arquivo, $linha);
}
fclose($arquivo);
Imagine que você necessite colocar os produtos em ordem alfabética. Podemos utilizar a função array_multisort().
$headers = ['Produto', 'Preço'];
$dados[];
$arquivo = fopen('file.csv', 'w');
fputcsv($arquivo , $headers);
foreach ($dados as $chave => $valor) {
$produto[$chave] = $valor['produto'];
$preco[$chave] = $valor['preco'];
}
// SORT_ASC para ordem crescente
array_multisort($preco, SORT_ASC, $dados);
foreach ($dados as $linha) {
fputcsv($arquivo, $linha);
}
fclose($arquivo);
Agora vamos ver como ordenar os os preços em ordem crescente. Podemos utilizar a função array_multisort().
$handle = fopen("nota.csv", "r");
$header = fgetcsv($handle, 1000, ",");
while ($row = fgetcsv($handle, 1000, ",")) {
$nota[] = array_combine($header, $row);
}
print_r($nota);
fclose($handle);
A função fgetcsv() interpreta a linha em busca de campos no formato csv e retorna um array contendo os campos lidos. Veja o exemplo:
Conforme vamos avançando no desenvolvimento da nossa aplicação é possível que ela fique um tanto confusa com declarações de variáveis e functions em um único arquivo.
No PHP você pode criar um arquivo separado contendo todas as variáveis, por exemplo, e depois incluí-lo no arquivo principal. Para isso, podemos utilizar a declaração include que inclui e avalia o arquivo informado.
<?php
vars.php // arquivo de variáveis
$fruta = 'maçã';
$cor = 'verde';
teste.php // arquivo de exemplo
include 'vars.php'; // pode usar também: include('vars.php');
echo "A $fruta é $cor "; // A maçã é verde
A declaração include_once inclui e avalia o arquivo informado durante a execução do script. Este é um comportamento similar a declaração include, com a única diferença que, como o nome sugere, o arquivo será incluído somente uma vez.
require é idêntico ao include exceto que em caso de falha produzirá um erro fatal, E_COMPILE_ERROR, ou seja, não compila. Enquanto que o include apenas emitirá um alerta E_WARNING permitindo que o script continue.
A declaração require_once é idêntica a require exceto que o PHP verificará se o arquivo já foi incluído, e em caso afirmativo, não o incluirá (exigirá) novamente.
A única diferença é que include gera apenas um aviso do PHP, mas permite que a execução do script continue se o arquivo a ser incluído não puder ser encontrado. Enquanto a require gerará um erro fatal e interromperá a execução do script.
A function_exists - retorna TRUE se a função dada está definida, do contrário, FALSE.
Sintaxe:
function_exists( string $function_name ) : bool
// declaração da function mensagem
function mensagem()
{
echo "Olá, mundo!";
}
// verificando se a function mensagem existe
if (function_exists('mensagem')) {
echo "mensagem() function está disponível" . PHP_EOL;
} else {
echo "mensagem() function não está disponível" . PHP_EOL;
}
1. Sabendo-se que 1 quilowatt de energia custa R$0,68 desenvolva uma função que receba a quantidade de quilowatts gasta por uma residência calcule e imprima:
a)Valor em reais a ser pago
b) O novo valor a ser pago por essa residência com um desconto de 10%.
Sua função deverá estar num arquivo separado.
2. Criar um programa que efetue o cálculo do valor a receber de um professor. Os dados fornecidos pelo usuário serão: valor da hora aula, total de horas no mês.
Sua função deverá estar num arquivo separado.
3. Você precisa desenvolver uma aplicação em PHP para avaliar se a senha definida pelo cliente segue a política de segurança de um banco. A verificação se uma senha é forte pode ser feita em duas etapas desenvolvidas separadamente:
a) Uma função que verifique se a quantidade de caracteres da senha é igual ou superior a 6 caracteres.
b) Uma função que verifique se há pelo menos um caractere em letra maiúscula.
A cada etapa de verificação de senha, a respectiva função deverá retornar um booleano: True se o critério for verificado, False caso contrário.
Funções deverão estar em um arquivo separado.
Fonte: AD1 – 2o Semestre de 2019 - Tecnologia em Sistemas de Computação - UFF (Adaptada)
Para muitos orientação a objetos é um conceito apavorante e com sintaxes complicadas. Nesta aula você aprenderá os conceitos que envolvem a programação orientada a objetos (POO) e conhecerá um mundo de possibilidades que a envolve.
A finalidade da POO é aproximar o mundo digital do mundo real e ela tráz inúmeras vantagens.
Imaginem uma casa...
Certamente quem a construiu antes de começar fez um projeto de como seria esta casa, damos este nome de projeto de planta.
A partir de uma planta pode ser construída inúmeras casas, todas elas com o mesmo molde. Porém, cada casa pode ter uma cor diferente, uma porta diferente...
Em POO chamamos a planta da casa de Classe (modelo) e as casas geradas a partir deste modelo de Objeto. Um novo objeto criado pode ser chamado de instância.
Veja o exemplo:
Uma classe é uma forma de definir um tipo de dado em uma linguagem orientada a objetos. Ela é formada por dados e comportamentos. Com a classe definida, podem ser criados diversos objetos do tipo da classe criada. Ela funciona, então, como um modelo para a criação dos seus objetos.
Objetos são instâncias de classes, que determinam qual informação um objeto contém.
Ou seja, é uma entidade capaz de reter um estado (informação) e que oferece uma série de informações (comportamento) para examinar ou para afetar este estado.
É através deles que praticamente todo o processamento ocorre em sistemas implementados com linguagens de programação orientadas a objetos.
Atributos de uma classe também são conhecidos como propriedades e descrevem um intervalo de valores que as instâncias da classe podem apresentar.
Um atributo é uma variável que pertence a um objeto. Os dados de um objeto são armazenados nos seus atributos.
Os métodos são procedimentos ou funções que realizam as ações próprias do objeto.
Tudo o que o objeto faz é através de seus métodos, pois é através deles que o objeto interage com os outros objetos. Sendo mais conhecidos como:
- Método Construtor
- Métodos Get e Set, etc.
Encapsulamento vem de encapsular, que em programação orientada a objetos significa separar o programa em partes, o mais isolado possível.
Vantagens:
- Tornar o software mais flexível.
- Fácil de modificar e de criar novas implementações.
Uma associação define um relacionamento entre duas classes que permite que um objeto faça com que outro objeto realize uma ação em seu lugar.
Em termos gerais, a casualidade da ação é feita ao enviar uma mensagem ou invocar um método do objeto controlado.
Escreva um programa em PHP que crie uma classe Empresa.
Escreva um programa em PHP que crie uma classe Funcionário.