25
Ismael Stangherlini – Programa de Educação Tutorial

Ismael Stangherlini – Programa de Educação Tutorial

Embed Size (px)

Citation preview

Page 1: Ismael Stangherlini – Programa de Educação Tutorial

Ismael Stangherlini – Programa de Educação Tutorial

Page 2: Ismael Stangherlini – Programa de Educação Tutorial

Ismael Stangherlini – Programa de Educação Tutorial

Uma variável estática é visível num escopo local, mas ela é inicializada apenas uma vez e seu valor não é perdido quando a execução do script deixa esse escopo.

Exemplo:

function conta_vezes(){

$vezes = 0;echo $vezes;$vezes++;

}

O último comando dessa função ($vezes++) é inútil, pois assim que for encerrada a execução da função a variável $vezes perde seu valor.

O modificador static permite que o valor de uma variável dentro de um determinado escopo local não seja perdido.

Page 3: Ismael Stangherlini – Programa de Educação Tutorial

Ismael Stangherlini – Programa de Educação Tutorial

function conta_vezes2(){

static $vezes = 0;echo $vezes;$vezes++;

}

Exemplo de utilização do modificador static:

Muito utilizado em funções recursivas, já que o valor de algumas variáveis precisa ser mantido.

O valor das variáveis declaradas como estáticas é mantido ao terminar a execução da função. Na próxima execução da função, ao encontrar novamente a declaração com static, o valor da variável é recuperado.

Uma variável declarada como static tem o mesmo ‘tempo de vida’ que uma variável global, porém sua visibilidade é restrita ao escopo local em que foi declarada e só é recuperada após a declaração.

Page 4: Ismael Stangherlini – Programa de Educação Tutorial

Que saída será dada ao código a seguir após a terceira chamada a função?

function conta_vezes3(){

echo $vezes;static $vezes = 0;$vezes++;

}

Ismael Stangherlini – Programa de Educação Tutorial

Page 5: Ismael Stangherlini – Programa de Educação Tutorial

Ismael Stangherlini – Programa de Educação Tutorial

function conta_vezes3(){

echo $vezes;static $vezes = 0;$vezes++;

}

Nenhuma saída!!!

Por quê?

Que saída será dada ao código a seguir após a terceira chamada a função?

Uma variável declarada como static tem o mesmo ‘tempo de vida’ que uma variável global, porém sua visibilidade é restrita ao escopo local em que foi declarada e só é recuperada após a declaração.

Page 6: Ismael Stangherlini – Programa de Educação Tutorial

function conta_vezes3(){

static $vezes = 0;echo $vezes . “<br>”;$vezes++;

}

E agora? O que o código mostrará na tela depois de 3 execuções da mesma?

Ismael Stangherlini – Programa de Educação Tutorial

Page 7: Ismael Stangherlini – Programa de Educação Tutorial

Ismael Stangherlini – Programa de Educação Tutorial

function conta_vezes3(){

static $vezes = 0;echo $vezes . “<br>”;$vezes++;

}

E agora? O que o código mostrará na tela depois de 3 execuções da mesma?

012

Saída:

Page 8: Ismael Stangherlini – Programa de Educação Tutorial

Ismael Stangherlini – Programa de Educação Tutorial

Recurso que consiste em variáveis cujos nomes também são variáveis.

Sua utilização é feita através do duplo cifrão ($$).

$pet = “PET”;$$pet = “Programa de Educação Tutorial”;

O código apresentado é equivalente ao seguinte:

$pet = “PET”;$PET = “Programa de Educação Tutorial”;

Page 9: Ismael Stangherlini – Programa de Educação Tutorial

Ismael Stangherlini – Programa de Educação Tutorial

<html><body bgcolor="#000000"><form action="recebe.php" method="POST"><font color="#FFFFFF">Hobby Favorito:<br><input type=RADIO name="resp1" value="r">Ficar 24 horas na frente do PC<br><input type=RADIO name="resp1" value="m">Dormir<br><input type=RADIO name="resp1" value="b">Praticar esportes<br><br>Escolaridade:<br><input type=RADIO name="resp2" value="m">2º grau completo<br><input type=RADIO name="resp2" value="r">1º grau completo<br><input type=RADIO name="resp2" value="b">3º grau completo<br><br>Anos de experiência:<br><input type=RADIO name="resp3" value="r">1 ano<br><input type=RADIO name="resp3" value="m">2 anos<br><input type=RADIO name="resp3" value="b">3 anos<br><br><input type="submit" value="Enviar"></font></form></body></html>

index.php

Page 10: Ismael Stangherlini – Programa de Educação Tutorial

Ismael Stangherlini – Programa de Educação Tutorial

<?$b = 0;$m = 0;$r = 0;$$resp1++;$$resp2++;$$resp3++;echo "Respostas boas: $b<br>";echo "Respostas médias: $m<br>";echo "Respostas ruis: $r<br>";

?>

recebe.php

Page 11: Ismael Stangherlini – Programa de Educação Tutorial

Quando usuário clica, dados são enviados ao programa ‘recebe.php’

$resp1 = ‘r’;$resp2 = ‘b’;$resp3 = ‘r’;

Como fazemos para contabilizar o número de respostas ‘r’, o número

de respostas ‘m’ e o número de respostas ‘b’ ???

Page 12: Ismael Stangherlini – Programa de Educação Tutorial

Quando usuário clica, dados são enviados ao programa ‘recebe.php’

$resp1 = ‘r’;$resp2 = ‘b’;$resp3 = ‘r’;

switch($resp1){ case ‘r’: $r++: break; case ‘m’: $m++; break; case ‘b’: $b++; break;}switch($resp2)...

Page 13: Ismael Stangherlini – Programa de Educação Tutorial

Quando usuário clica, dados são enviados ao programa ‘recebe.php’

$resp1 = ‘r’;$resp2 = ‘b’;$resp3 = ‘r’;

$$resp1++;$$resp2++;$$resp3++;

$r = 0;$m = 0;$b = 0;

$r++;$b++;$r++;

É equivalente a fazer o seguinte:

Page 14: Ismael Stangherlini – Programa de Educação Tutorial

Ismael Stangherlini – Programa de Educação Tutorial

Para interagir com a navegação feita pelo usuário, é necessário que o PHP possa enviar e receber informações para o software de navegação.

A forma de enviar informações geralmente é através de um comando de impressão, como o echo.

Para receber informações vindas do navegador através de um link ou de um formulário HTML, o PHP utiliza as informações enviadas através da URL ou do corpo da mensagem enviada ao servidor.

Caso as informações sejam passadas pela URL, elas são passadas no formato URLenconde.

O PHP decodifica essas informações, sem necessitar de tratamento pelo programador.

Page 15: Ismael Stangherlini – Programa de Educação Tutorial

Ismael Stangherlini – Programa de Educação Tutorial

<html><body><form action=“controla.php” method=“GET”>

Nome: <input type="text" name="nome" size=20><br>Sobrenome: <input type="text" name="endereco" size=20><br><input type="submit" value="Enviar"><br>

</form></body></html>

Page 16: Ismael Stangherlini – Programa de Educação Tutorial

<html><body><form action=“controla.php” method=“GET”>

Nome: <input type="text" name="nome" size=20><br>Sobrenome: <input type="text" name="endereco" size=20><br><input type="submit" value="Enviar"><br>

</form></body></html>

Ismael Stangherlini – Programa de Educação Tutorial

Informações são enviadas quando usuário clicar em

‘Enviar’

Ismael

Bento Gonçalves

Page 17: Ismael Stangherlini – Programa de Educação Tutorial

<html><body><form action=“controla.php” method=“GET”>

Nome: <input type="text" name="nome" size=20><br>Sobrenome: <input type="text" name="endereco" size=20><br><input type="submit" value="Enviar"><br>

</form></body></html>

Ismael Stangherlini – Programa de Educação Tutorial

Informações são enviadas quando usuário clicar em

‘Enviar’

Ismael

Bento Gonçalves

Uma vez que o método utilizado é o GET, as informações são passadas juntamente com a URL, no formato

URLencode:

Page 18: Ismael Stangherlini – Programa de Educação Tutorial

A página PHP “controla.php” decodifica

essas informações, podendo ser acessadas

pela página

Ismael

Bento Gonçalves

Uma vez que o método utilizado é o GET, as informações são passadas juntamente com a URL, no formato

URLencode:

<html><body><form action=“controla.php” method=“GET”>

Nome: <input type="text" name="nome" size=20><br>Sobrenome: <input type="text" name="endereco" size=20><br><input type="submit" value="Enviar"><br>

</form></body></html>

Ismael Stangherlini – Programa de Educação Tutorial

Informações são enviadas quando usuário clicar em

‘Enviar’

Page 19: Ismael Stangherlini – Programa de Educação Tutorial

Esse formato é obtido da seguinte maneira:

1 – Substitui-se os espaços pelo caracter ‘+’

2 – Todos os outros caracteres não alfa-numéricos (com exceção de “_”) são substituídos pelo caracter ‘%’ seguido do código ASCII em hexadecimal.

Bento Gonçalves Bento+Gon%E7alves

S%E3o+LeopoldoSão Leopoldo

Conteúdos de variáveis enviadas através da URL são representados no formato URLencode. Variáveis são separadas pelo símbolo ‘&’ e início de uma cadeia de variáveis é indicado pelo símbolo ‘?’

Ismael Stangherlini – Programa de Educação Tutorial

Page 20: Ismael Stangherlini – Programa de Educação Tutorial

Ismael Stangherlini – Programa de Educação Tutorial

São variáveis pertencentes ao ambiente do servidor Web, mas podem ser usadas nos programas PHP.

Algumas dessas variáveis contém informações sobre o navegador do usuário, o servidor http, a versão do PHP e diversas outras informações.Para se ter uma listagem de todas as variáveis e constantes de ambiente e seus respectivos conteúdos, deve-se utilizar a função phpinfo();

Page 21: Ismael Stangherlini – Programa de Educação Tutorial

Para se obter o valor das variáveis de ambiente, utilizamos a função getenv do PHP.

getenv(“nome da variável”);

Variável de Ambiente DescriçãoSERVER_NAME Nome do Servidor

REQUEST_METHOD Método de envio de dados utilizado (GET,POST)

QUERY_STRING Armazena tudo o que vem após o '?' em uma URL

REMOTE_ADDR Endereço IP do visitante

HTTP_USER_AGENT Nome e versão do browser utilizado pelo cliente

Exemplos de variáveis de ambiente:

Ismael Stangherlini – Programa de Educação Tutorial

Page 22: Ismael Stangherlini – Programa de Educação Tutorial

Ismael Stangherlini – Programa de Educação Tutorial

Uma variável de ambiente importante é a que guarda o IP do visitante, uma vez que é muito utilizada em sistemas que precisam obter um maior controle de acesso e segurança em seus sites.

Cada máquina conectada a Internet possui um endereço IP que a identifica na rede.

$ip = getenv(“REMOTE_ADDR”);

A variável REMOTE_ADDR é a variável que contém o endereço IP do visitante que solicitou a página.

Testem em suas máquinas!!!

Page 23: Ismael Stangherlini – Programa de Educação Tutorial

Ismael Stangherlini – Programa de Educação Tutorial

GETTYPE($nome_da_variavel):

Essa função retorna o tipo de uma variável em um string:

* Integer* Double* String* Array* Object* Unknown type

<?$valor = 3.5;$tipo = gettype($valor);echo $tipo;

?>

Page 24: Ismael Stangherlini – Programa de Educação Tutorial

Ismael Stangherlini – Programa de Educação Tutorial

Funções que testam o tipo de uma variável:

is_integeris_intis_stringis_realis_longis_floatis_arrayis_object

Retorna um booleano

Page 25: Ismael Stangherlini – Programa de Educação Tutorial

Ismael Stangherlini – Programa de Educação Tutorial

UNSET

<?$a = 10;unset($a);echo $a;

?>

Essa função destrói uma variável, liberando sua memória