Programação para Internet II - WordPress.com · 2019. 8. 29. · Um object (objeto) é um tipo de...
Transcript of Programação para Internet II - WordPress.com · 2019. 8. 29. · Um object (objeto) é um tipo de...
Programação para Internet II
1
Prof. Cleziel Franzoni da Costa
/cleziel
cleziel.wordpress.com
INTRODUÇÃO AO PHP2
<!DOCTYPE html>
<html>
<body>
<?php
echo "My first PHP script!";
?></body>
</html>
SINTAXE3
COMENTÁRIOS4
PHP Case Sensitivity No PHP as palavras reservadas (if, else, while, echo,) não são case-sensitive;
Todas as variáveis declaradas no PHP SÃO case-sensitive.
5
VARIÁVEIS No PHP, uma variável começa com o símbolo $, seguido pelo nome da variável:
<?php
$txt = "Hello world!";
$x = 5;
$y = 10.5;
?>
● Após a execução das declarações acima, a variável $txt manterá o valor Hello world!, a variável $x manterá o valor 5 e a variável $y manterá o valor 10.5.
6
VARIÁVEIS Uma variável pode ter um nome abreviado (como xey) ou um nome mais
descritivo (age, carname, total_volume).
Regras para variáveis PHP:
➔ Uma variável começa com o símbolo $, seguido pelo nome da variável
➔ Um nome de variável deve começar com uma letra ou o caractere underline
➔ Um nome de variável não pode começar com um número
➔ Um nome de variável só pode conter caracteres alfanuméricos e underline (Az, 0-9 e _)
➔ Nomes de variáveis diferenciam maiúsculas de minúsculas ( $age e $AGE são duas variáveis diferentes)
7
VARIÁVEIS - SAÍDA A instrução PHP echo é frequentemente usada para enviar dados para a tela.
<?php
$txt = "W3Schools.com";
echo "I love $txt!";
echo "<br>";
echo "I love " . $txt . "!";
?>
8
PHP É FRACAMENTE TIPADA O PHP associa automaticamente um tipo de dados à variável, dependendo do
seu valor.
Como os tipos de dados não são definidos em um sentido estrito, você pode fazer coisas como adicionar uma string a um inteiro sem causar um erro.
No PHP 7, declarações de tipo foram adicionadas. Isto dá uma opção para especificar o tipo de dados esperado ao declarar uma função, e ativando o requisito STRICT, ele lançará um "Erro Fatal" em uma incompatibilidade de tipos.
9
ESCOPO GLOBAL E LOCAL Uma variável declarada fora de uma função possui um SCOPE GLOBAL e só pode ser
acessada fora de uma função (A).
Uma variável declarada dentro de uma função possui um SCOPE LOCAL e só poderá ser acessada dentro dessa função (B).
10
A B
A palavra-chave GLOBAL A palavra-chave global é usada para acessar uma variável global de dentro de
uma função.
11
A palavra-chave STATIC Normalmente, quando uma função é completada
/ executada, todas as suas variáveis (locais) são deletadas. No entanto, às vezes, queremos que uma variável local NÃO seja excluída.
Para fazer isso, use a palavra-chave static quando você declarar a variável pela primeira vez:
12
ECHO / PRINT As diferenças são pequenas: echo não tem valor de retorno enquanto print tem
um valor de retorno de 1, portanto, pode ser usado em expressões.
echo pode ter vários parâmetros (embora esse uso seja raro), enquanto print pode levar apenas um argumento.
echo é um pouco mais rápido que print.
13
ECHO A declaração echo pode ser usada com ou sem parênteses: echo ou echo().
14
PRINT A declaração print também pode ser usada com ou sem parênteses: print ou
print().
15
TIPOS DE DADOS – PHP 7 Uma mesma variável pode armazenar dados de diferentes tipos, e diferentes
tipos de dados podem fazer coisas diferentes.
O PHP suporta os seguintes tipos de dados:
✔ String
✔ Integer
✔ Float (também chamado de double)
✔ Boolean
✔ Array
✔ Object
✔ NULL
✔ Resource
16
STRING Uma string é uma seqüência de caracteres, como "Hello world!".
Uma string pode ser qualquer texto entre aspas. Você pode usar aspas simples ou duplas:
17
<?php $x = "Hello world!";$y = 'Hello world!';
echo $x;echo "<br>"; echo $y;?>
INTEGER Um tipo de dados inteiro é um número não decimal entre -2.147.483.648 e 2.147.483.647.
Regras para números inteiros:
➢ Um inteiro deve ter pelo menos um dígito
➢ Um inteiro não deve ter um ponto decimal
➢ Um inteiro pode ser positivo ou negativo
➢ Os inteiros podem ser especificados em três formatos: decimal (baseado em 10), hexadecimal (baseado em 16 - com prefixo 0x) ou octal (baseado em 8 - prefixado com 0)
18
INTEGER No exemplo a seguir, $x é um inteiro. A função PHP var_dump() retorna o tipo de dados e
valor:
19
<?php
$x = 5985;
var_dump($x);
?>
FLOAT Um float (número de ponto flutuante) é um número com um ponto decimal ou um
número no formato exponencial.
20
<?php $x = 10.365;var_dump($x);?>
BOOLEAN Um booleano representa dois estados possíveis: VERDADEIRO ou FALSO.
$x = true;
$y = false;
21
ARRAY Um array (matriz) armazena vários valores em uma única variável.
22
<?php $cars = array("Volvo","BMW","Toyota");var_dump($cars);?>
OBJECT Um object (objeto) é um tipo de dados que armazena
dados e informações sobre como processar esses dados.
No PHP, um objeto deve ser explicitamente declarado.
Primeiro devemos declarar uma classe de objeto. Para isso, usamos a palavra-chave class. Uma classe é uma estrutura que pode conter propriedades e métodos:
23
<?phpclass Car { function Car() { $this->model = "VW"; }}
// create an object$herbie = new Car();
// show object propertiesecho $herbie->model;?>
NULL Null é um tipo de dados especial que pode ter apenas um valor: NULL.
Uma variável do tipo de dados NULL é uma variável que não tem valor atribuído a ela.
Dica: Se uma variável é criada sem um valor, é atribuído automaticamente o valor NULL.
Variáveis também podem ser esvaziadas definindo o valor como NULL:
24
<?php$x = "Hello world!";$x = null;var_dump($x);?>
RESOURCE O tipo especial resource não é um tipo de dados real. É o armazenamento de
uma referência a funções e recursos externos ao PHP.
Um exemplo comum de uso do tipo de dados de recurso é uma chamada de banco de dados.
25
STRINGS - FUNÇÕES strlen(): retorna o tamanho de uma string.
str_word_count(): conta o número de palavras em uma string.
strrev(): inverte uma string.
strpos(): procura por um texto específico dentro de uma string.
str_replace(): substitui alguns caracteres por outros caracteres em uma string.
26
<?php
echo strlen("Hello world!"); // outputs 12
echo str_word_count("Hello world!"); // outputs 2
echo strrev("Hello world!"); // outputs !dlrow olleH
echo strpos("Hello world!", "world"); // outputs 6
echo str_replace("world", "Dolly", "Hello world!"); // outputs Hello Dolly!
?>
CONSTANTES Uma constante é um identificador (nome) para um valor simples. O valor não
pode ser alterado durante a execução;
Um nome de constante válido começa com uma letra ou um underline (nenhum sinal de $ antes do nome da constante);
Nota: Ao contrário das variáveis, as constantes são automaticamente globais em todo o código.
27
CONSTANTES Sintaxe
define(name, value, case-insensitive)
EXEMPLOS:
28
<?php
define("GREETING", "Welcome to W3Schools.com!");
echo GREETING;
?>
<?php
define("GREETING", "Welcome to W3Schools.com!", false);
echo greeting;
?>
CONSTANTES29
<?phpdefine("GREETING", "Welcome to W3Schools.com!");
function myTest() { echo GREETING;} myTest();?>
Operadores Os operadores são usados para executar operações em variáveis e valores.
O PHP divide os operadores nos seguintes grupos:
➔ Operadores aritméticos
➔ Operadores de atribuição
➔ Operadores de comparação
➔ Operadores de incremento / decremento
➔ Operadores lógicos
➔ Operadores de cordas
➔ Operadores de matriz
➔ Operadores de atribuição condicional
30
Operadores Aritméticos31
Operadores de Atribuíção32
Operadores de Comparação33
Operadores de incremento/decremento34
Operadores Lógicos35
Operadores de String36
Operadores de Array37
Operadores de Array<?php
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
var_dump($x == $y);
?>
38
Instruções de Decisão
<?php
$t = date("H");
if ($t < "20") {
echo "Have a good day!";
}
?>
39
Switch .. case40
<?php$favcolor = "red";
switch ($favcolor) { case "red": echo "Your favorite color is red!"; break; case "blue": echo "Your favorite color is blue!"; break; case "green": echo "Your favorite color is green!"; break; default: echo "Your favorite color is neither red, blue, nor green!";}?>
While41
<?php $x = 1;
while($x <= 5) { echo "The number is: $x <br>"; $x++;} ?>
Do...while42
<?php $x = 1;
do { echo "The number is: $x <br>"; $x++;} while ($x <= 5);?>
For43
<?php
for ($x = 0; $x <= 10; $x++) { echo "The number is: $x <br>";}
?>
Foreach44
<?php
$colors = array("red", "green", "blue", "yellow");
foreach ($colors as $value) { echo "$value <br>";}
?>
Function45
<?php
function familyName($fname) { echo "$fname Refsnes.<br>";}
familyName("Jani");familyName("Hege");familyName("Stale");familyName("Kai Jim");familyName("Borge");
?>
<?php
function addNumbers(int $a, int $b) { return $a + $b;}echo addNumbers(5, "5 days");
?>
Manipulação de Formulários Quando o usuário preenche um formulário acima e clica no botão de envio, os
dados do formulário são enviados para processamento em um arquivo PHP.
Os dados do formulário são enviados com o método HTTP POST.
46
<html><body>
<form action="welcome.php" method="post">Name: <input type="text" name="name"><br>E-mail: <input type="text" name="email"><br><input type="submit"></form>
</body></html>
<html><body>
Welcome <?php echo $_POST["name"]; ?><br>Your email address is: <?php echo $_POST["email"]; ?>
</body></html>
Manipulação de Formulários O mesmo resultado também pode ser obtido usando o método HTTP GET:
47
<html><body>
<form action="welcome_get.php" method="get">Name: <input type="text" name="name"><br>E-mail: <input type="text" name="email"><br><input type="submit"></form>
</body></html>
<html><body>
Welcome <?php echo $_GET["name"]; ?><br>Your email address is: <?php echo $_GET["email"]; ?>
</body></html>
GET vs. POST Tanto o GET quanto o POST criam uma matriz (por exemplo, matriz (chave1 =>
valor1, chave2 => valor2, chave3 => valor3, ...)). Essa matriz contém pares de chave / valor, em que as chaves são os nomes dos controles de formulário e os valores são os dados de entrada do usuário.
Tanto o GET quanto o POST são tratados como $ _GET e $ _POST. Estes são superglobais, o que significa que eles estão sempre acessíveis, independentemente do escopo - e você pode acessá-los de qualquer função, classe ou arquivo sem ter que fazer nada especial.
48
GET vs. POST $ _GET é uma matriz de variáveis passadas para o script atual por meio dos
parâmetros de URL.
$ _POST é uma matriz de variáveis passadas para o script atual através do método HTTP POST.
49
Quando usar o GET? As informações enviadas de um formulário com o método GET ficam visíveis
para todos (todos os nomes e valores das variáveis são exibidos no URL).
O GET também tem limites na quantidade de informação a ser enviada. A limitação é de cerca de 2000 caracteres. No entanto, como as variáveis são exibidas na URL, é possível marcar a página como favorito. Isso pode ser útil em alguns casos.
GET pode ser usado para enviar dados não sensíveis.
Nota: GET nunca deve ser usado para enviar senhas ou outras informações confidenciais!
50
Quando usar o POST? As informações enviadas de um formulário com o método POST são invisíveis
para os outros (todos os nomes / valores são incorporados ao corpo da solicitação HTTP) e não têm limites quanto à quantidade de informações a serem enviadas.
Além disso, o POST oferece suporte a funcionalidades avançadas, como suporte a entradas binárias de várias partes, ao carregar arquivos no servidor.
No entanto, como as variáveis não são exibidas na URL, não é possível marcar a página como favorito.
Nota: Os desenvolvedores preferem o POST para enviar dados de formulário.
51
Arrays Um array armazena vários valores em uma única variável.
Um array é uma variável especial, que pode conter mais de um valor por vez e você pode acessar os valores referenciando um número de índice.
No PHP, a função array() é usada para criar um array:
52
<?php$cars = array("Volvo", "BMW", "Toyota");echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";?>
Arrays No PHP, existem três tipos de arrays:
➢ Arrays indexados - Arrays com um índice numérico
➢ Arrays associativos - Arrays com chaves nomeadas
➢ Arrays multidimensionais - Arrays contendo um ou mais arrays
53
Arrays Indexados Existem duas maneiras de criar arrays indexados:
O índice pode ser atribuído automaticamente (o índice sempre começa em 0), assim:
ou o índice pode ser atribuído manualmente:
54
$cars = array("Volvo", "BMW", "Toyota");
$cars[0] = "Volvo";$cars[1] = "BMW";$cars[2] = "Toyota";
Arrays Indexados O exemplo a seguir cria um array indexado chamado $cars, atribui três elementos
a ele e, em seguida, imprime um texto que contém os valores do array:
55
<?php
$cars = array("Volvo", "BMW", "Toyota");echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
A função count() A função count() é usada para retornar o comprimento (o número de elementos)
de um array:
56
<?php
$cars = array("Volvo", "BMW", "Toyota");echo count($cars);
?>
Loop através de uma array indexado Para percorrer e imprimir todos os valores de um array indexado, você poderia
usar um loop for, como este:
57
<?php$cars = array("Volvo", "BMW", "Toyota");$arrlength = count($cars);
for($x = 0; $x < $arrlength; $x++) { echo $cars[$x]; echo "<br>";}?>
Arrays Associativos Arrays associativos são arrays que usam chaves nomeadas que você atribui a
elas.
Existem duas maneiras de criar um array associativo:
58
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
ou:
$age['Peter'] = "35";$age['Ben'] = "37";$age['Joe'] = "43";
● As chaves nomeadas podem então ser usadas em um script:
<?php$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");echo "Peter tem " . $age['Peter'] . " anos.";?>
Loop através de um array associativo Para percorrer e imprimir todos os valores de um array associativo, você poderia
usar um loop foreach, como este:
59
<?php$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
foreach($age as $x => $x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "<br>";}?>
Arrays Multidimensionais Um array multidimensional é um array contendo um ou mais arrays.
O PHP entende arrays multidimensionais com dois, três, quatro, cinco ou mais níveis de profundidade. No entanto, os arrays com mais de três níveis de profundidade são difíceis de gerenciar para a maioria das pessoas.
60
<?phpecho $cars[0][0].": In stock: ".$cars[0][1].", sold: ".$cars[0][2].".<br>";echo $cars[1][0].": In stock: ".$cars[1][1].", sold: ".$cars[1][2].".<br>";echo $cars[2][0].": In stock: ".$cars[2][1].", sold: ".$cars[2][2].".<br>";echo $cars[3][0].": In stock: ".$cars[3][1].", sold: ".$cars[3][2].".<br>";?>
$cars = array ( array("Volvo",22,18), array("BMW",15,13), array("Saab",5,2), array("Land Rover",17,15) );
Exercício
Utilizando arrays e os demais conhecimentos adquiridos nesta disciplina, crie um formulário para cadastro de personagens e um para listagem dos personagem cadastrados. Será necessário armazenar apenas os nomes destes personagens.
61