2. 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
3. Tipos de dados: compostos
... permitem agregar vários valores sob uma mesma entidade
Array
• $marcacarro = array();
• $marcacarro[0] = “Opel”;
• $marcacarro[1] = “Renault”; 0 1 2
• $marcacarro[2] = “Fiat”; Opel Renault Fiat
Tipos de arrays
• Arrays (com índice)
• Arrays associativos
• Arrays multi-dimensionais
4. 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;
5. 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”;
6. 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'
7. 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
8. 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)
9. 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!
10. 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)
11. 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;
}
12. 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
13. 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
14. 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
15. 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']
16. 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++;
17. 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
18. 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"
20. 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
21. 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?