LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

21
Tecnologias server-side: Tipos de dados e variáveis em PHP Carlos Santos LabMM 4 - NTC - DeCA - UA Aula 11, 02-04-2013

description

 

Transcript of LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Page 1: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Tecnologias server-side: Tipos de dados e variáveis em PHP

Carlos SantosLabMM 4 - NTC - DeCA - UAAula 11, 02-04-2013

Page 2: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Tipos de dados: simples/escalares

boolean

• True (<> 0) ou False (= 0)

integer

• sem parte fraccionária• base 16 (Hexadecimal), base 10 (Decimal), base 8 (Octal), Base 2 (Binário)• valor máximo = 231

float, real, double

• com parte fraccionária

string

• sequência de caracteres

Page 3: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Tipos de dados: compostos

... permitem agregar vários valores sob uma mesma entidade

Array

• $marcacarro = array();• $marcacarro[0] = “Opel”;• $marcacarro[1] = “Renault”;• $marcacarro[2] = “Fiat”;

Tipos de arrays

• Arrays (com índice)• Arrays associativos• Arrays multi-dimensionais

Opel Renault Fiat0 1 2

Page 4: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Tipos de dados: compostos

Object

• declarado através duma classe• Class Carro {! ! ! Propriedades -> Variáveis! ! ! Métodos -> Funções}

• instanciados através da declaração duma variável• $CarroPolicia = new Carro;• $CarroLadroes = new Carro;

Page 5: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Tipos de dados: type casting

conversão do tipo de dados armazenado numa variável (type casting)

• $score = (double) 13; -> $score = 13.0

• $score = (int) 13.22645; -> $score = 13

se necessário o PHP converte automaticamente o tipo de dados de modo a que o código possa ser corretamente processado. Exemplos:

• $a = 15; $b = “5”;

• $resultado = $a + $b; -> $resultado = 20

• $cond = “1.0”;

• if ($cond) echo “a variável cond é verdadeira”;

Page 6: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Tipos de dados: type casting

funções para obter e modificar o tipo de dados de uma variável

• verificar o tipo de dados duma variável• gettype (var) -> devolve o tipo de dados de var

• modificar o tipo de dados duma variável• settype (var, type) -> atribui a var o tipo de dados type

funções para testar o tipo de dados duma variável (retornan true ou false)

• is_float (var); is_bool(var); is_integer(var); is_numeric(var);

$foo = '1'; echo gettype($foo); !// output -> 'string' $foo = (int)$foo; echo gettype($foo); !// output -> 'integer'

Page 7: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Identificadores

associados a variáveis, funções e outros objectos definidos pelo utilizador

possuem um ou mais caracteres

começam por letras ou por “_”

são Case Sensitive!

My_function $Size $_preco $Teste

• Carro <> carro

Page 8: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Variáveis

armazenam valores

identificam esses valores armazenados

declaração implícita -> basta referir a variável no código

$a

atribuição directa de valores

$a = 2;

atribuição de valores por referência

$c =& $b;

• se $b = 10 então $c = 10 (qualquer alteração numa reflecte-se na outra)

Page 9: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Atribuição de valores por referência

Exemplo:

• <?php $a = " Gostas do SCP?"; $b = &$a; echo $a; echo $b; $b = " Claro que sim!"; echo $a; echo $b;?>

Gostas do SCP? Gostas do SCP? Claro que sim! Claro que sim!

Page 10: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Scope (âmbito das variáveis)

locais

• se declaradas dentro duma função então existem apenas nesse âmbito

$x = 4; function aMinhaFuncao () { $x = 0; // Variável local }

• dentro da função $x = 0• fora da função $x = 4 (é uma variável distinta e não altera o valor da

variável local)

Page 11: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Scope (âmbito das variáveis)

parâmetros de funções

• existem apenas no âmbito da respetiva função

funtion soma ($parcelaA, $parcelaB) { $resultado = $parcelaA + $parcelaB; return $resultado; }

Page 12: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Scope (âmbito das variáveis)

globais

• visíveis globalmente• GLOBAL $x; //Para alterar $x dentro de uma função

estáticas

• existem no âmbito das funções mas não são destruídas quando se sai da função

function contador () {! ! ! static $valor = 0;! ! ! $valor = $valor + 1;! ! ! echo $valor;! ! }

• a cada chamada da função contador() a variável $valor é incrementada uma unidade

Page 13: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Scope (âmbito das variáveis)

superglobais -> sempre acessíveis e definidas pelo sistema

$_SERVER

• fornece dados sobre o ambiente em que a página corre (servidor)

$_FILES

• dados sobre os ficheiros transferidos para o servidor pelo método POST

$_ENV

• tal como a $_SERVER fornece dados sobre o ambiente onde a página corre (servidor e cliente)

$_SESSION

• guarda os dados de todas as variáveis de sessão de um utilizador

Page 14: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Scope (âmbito das variáveis)

superglobais

$_GET

• passagem de parâmetros pelo método GET• http://www.example.com/index.php?cat=apache&id=157

• $_GET['cat'] -> "apache“;

• $_GET['id'] -> "157“;

• query string• tudo o que se segue ao “?” no URL

Page 15: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Scope (âmbito das variáveis)

superglobais

$_POST

• passagem de parâmetros pelo método POST

<form action="subscribe.php" method="post">Email address:<br /><input type="text" name="email" size="20" maxlength="50" value="" /><br /><input type="submit" name="subscribe" value="subscribe!" /></form>

na página subscribe.php existirá a variável -> $_POST['email']

Page 16: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Constantes e expressões

constantes

• valores que não são modificados ao longo da execução da aplicação• são valores globais• define (‘PI’, 3.141592);$dobro = 2 * PI;echo $dobro; echo PI;

expressões

• representam genericamente uma ação no nosso programa…• contêm operandos e operadores

• $a = 2;

• $soma = 2 + 3;

• $contador++;

Page 17: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Operadores

precedência entre operadores

• seguem as regras matemáticas!

operadores aritméticos

• $a + $b -> adição• $a - $b -> subtracção• $a * $b -> multiplicação• $a / $b -> divisão• $a % $b -> resto da divisão inteira de $a por $b

Page 18: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Operadores

operadores de atribuição

• $a = 5 -> atribuição -> $a igual a 5• $a += 5 -> adição-atribuição -A $a igual a $a mais 5 -> $a=$a+5• $a *= 5 -> multiplicação-atribuição -> $a igual a $a multiplicado por 5• $a /= 5 -> divisão-atribuição -> $a igual a $a dividido por 5

operadores de strings

• $a = "abc"."def"; -> concatenação -> $a igual a "abcdef"• $a .= "abc" -> concatenação-atribuição > $a igual a $a concatenado com

"abc"

Page 19: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Operadores

operadores de incremento e decremento

• ++$a, $a++ -> incremento -> $a = $a + 1;• --$a, $a-- -> decremento -> $a = $a - 1;• (os resultados nem sempre são iguais)

<?php $a=1; $c=++$a; echo $a." | "; echo $c;?>

<?php $a=1; $c=$a++; echo $a." | "; echo $c;?>

2 | 2 2 | 1

Page 20: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Operadores

operadores lógicos

• $a && $b -> e lógico -> verdadeiro se ambos forem verdadeiros• $a || $b -> ou lógico -> verdadeiro se pelo menos um for verdadeiro• !$a -> negação -> verdadeiro se $a for falso

Page 21: LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis

Operadores

operadores de igualdade

• $a == $b -> Será $a igual a $b?• $a != $b -> Será $a diferente a $b?• $a === $b -> Será $a idêntico a $b? (compara o valor e o tipo de dados

armazenado)

operadores de comparação (para valores numéricos)

• $a < $b -> Será $a menor que $b?• $a > $b -> Será $a maior que $b?• $a <= $b -> Será $a menor ou igual que $b?• $a >= $b -> Será $a maior ou igual que $b?