PHP e suas variáveis (básico)

PHP básico, especial sobre variáveis com exemplos.

[ Hits: 21.717 ]

Por: woshington rodrigues em 22/07/2010


Tipos de variáveis



Apesar do PHP não ser tipado, podemos definir aqui os principais tipos de dados que estão inclusos no php dinamicamente no total de 8, sendo 4 tipos escalares, 2 tipos compostos e 2 tipos especiais.

Tipo booleano: assume apenas dois valores, ou é TRUE (verdadeiro) ou é FALSE (falso), através de uma expressão booleana pode ser definido um false ou um true, uma estrutura condicional como o if por exemplo retorna um booleano de acordo com o resultado da condição. O tipo booleano foi introduzido no php4, tanto a palavra reservada TRUE como FALSE não são case-sensitive.

Tipo string: é uma cadeia de caracteres, os caracteres são formados por um byte. Uma string pode ser incluída de diversas formas dentre elas podemos citar:

Aspas simples: tudo que estiver entre as aspas simples será considerado String, inclusive identificadores precedidos de cifrão.

<?php
$a = "testando";
echo "$a" // resultará $a.
?>

Aspas duplas: interpretará tanto strings como variáveis e caracteres de escape.

Ex.:

<?php
$a = "testando";
echo "$a" // resultará testando
?>

Sintaxe HEREDOC, está é bastante incomum, possui a vantagem de deixar o texto exatamente como digitado, interpretando inclusive as quebras de linha, além de se comportar como o texto digitado entre aspas duplas, no entanto não é preciso escapar os caracteres de aspas duplas e aspas simples.

Ex.:

<?php
$str = <<<EOD /*a tag de abertura representada por 3 sinais de menor que <<< e a string é associada a uma variável */
Aqui vem toda a escrita
Aqui temos a string.
EOD; //a tag agora está fechada
echo $str; // aqui é mostrado toda a string
?>

Tipo integer: são valores numéricos inteiros. Que podem ser usados na base decimal, octal ou hexadecimal.

Tipo float ou double: são valores numéricos reais que permitem o uso de pontos flutuantes. Estes podem ser representados contendo casas decimais.

Array: é um tipo que armazena diversos índices na memória, os índices funcionam como chaves que armazenam a posição de memória onde estão as variáveis, o array pode ser um vetor (linear), pode ser uma lista, uma pilha, fila, para criar um array em php é simples e pode ser feito de várias maneiras.

<?php
$arr = array("valor1","valor2","valor3");
/* acabei de criar uma array, note que ela é do tipo string e seus índices começam a partir do número 0, para acessar o primeiro índice da array $arr basta fazer */
echo $arr[0]; //irá retornar "valor1"
// Uma outra forma de declarar uma array seria assim:
$arr = array(1 => "valor1", "indice" => 5, 4 => "testando");

/* note que o usuário pode definir seus próprios índices e misturar strings com inteiros dentro da array*/
echo $arr["indice"]; // retornará 5

# por último também podemos declarar uma array da seguinte forma:
$a[ ] = "teste";
echo $a[0]; // retornará "teste"
?>

Objeto: é um recurso muito poderoso que renderia muitas páginas de estudo, todavia aqui iremos apenas fazer uma síntese a respeito, um objeto pode ser criado a partir de uma classe e normalmente possui atributos e métodos, pode ser criado da seguinte forma.

<?php
Class ex {
   Function testaObj() {
      echo "função";
   }
}

$objEx = new ex; //instancia um objeto através do operador new
$objEx -> testaObj //O objeto objEx acessa seu método testaObj.
?>

Resource: é um tipo especial de variável que guarda uma referência na memória que será utilizado por um recurso externo, normalmente é utilizado por um manipulador de arquivos, uma conexão com o banco de dados, dentre outros.

<?php
$fd = fopen("wos.txt", "r");
echo $fd; /* retorna um resource que será manipulado por outra função, como por exemplo a fgets() que retorna uma string e pede um resource como parâmetro */
?>

NULL: uma variável pode ser considerada null de 3 formas:
  • Caso seja atribuído a ela o valor NULL.
  • Em razão do uso do comando unset($var) que apaga a variável.
  • Ou caso ela não tenha recebido nenhum valor.

Pseudo-tipos

Mixed: significa que um parâmetro pode aceitar vários tipos diferentes de variáveis, como por exemplo a função gettype(), onde o usuário pode informar um argumento de qualquer tipo, mixed quer dizer misto.

Number: significa que um parâmetro pode ser tanto integer quanto float.

CallBack: é um parâmetro que pede a execução de uma função externa, pode ser o nome de uma função ou de um método de um objeto. Ou seja é uma função que tem como argumento outra função sendo que está última será definida pelo usuário. Call_user_func() é exemplo de uma função que aceita parâmetros callback.

Void: void significa vazio, quando é um tipo de retorno assinala que não há valor a ser retornado, e dentro da lista de argumentos assinala que a function não aceita argumentos.

SuperGlobals, Globals, Locais

As variáveis são limitadas a um determinado escopo, algumas podem ser acessadas de qualquer lugar da aplicação, estas são variáveis globais, as locais só podem ser acessadas dentro de um determinado escopo como por exemplo as variáveis de functions, para que uma variável local possa ser convertida em global basta fazer:

<?php
$b;
Function testaGlobal() {
   global $var; //agora pode ser acessada fora do escopo da função.
   $GLOBALS["b"] = 20; /*também pode ser feito assim o usos das globais note que o nome da variável global se torna a chave do array*/
}
?>

As superglobais são variáveis pré-definidas pelo php, como por exemplo as variáveis de ambiente $_SERVER, as HTTP_VARS  $_POST, $_GET, $_FILES etc.

Variáveis estáticas

O modificador static serve para manter o valor das variáveis dentro de uma função, sempre que uma função é executada, no final de sua execução o valor das variáveis são zeradas, ao usar static estes valores permanecem inertes.

Ex.:

<?php
function testaStatic($param1) {
   static $result;
   $result+=$param1;
   echo $result;
}

testaStatic(50); //retorna 50
testaStatic(50); /*retorna 100, note que result irá manter seu valor mesmo dentro da função pois é uma variável estática. */

?>

Seria muito útil em um contador de visitas o uso de variáveis estáticas. Quando se utiliza recursão também se mostra útil o modificador static.

Variáveis variantes

Ocorre quando são adicionados dois ou mais cifrões a uma determinada variável. O php acaba por referenciar uma variável através do conteúdo da primeira.

Ex.:

<?php
$teste = "var";
$$teste = "var2";

echo $var; // retornará "var2" pois $$teste é igual a $var
$$$teste = 8;
echo $var2; /* retornará 8 o conteúdo de $$teste é passado para a variável seguinte, como o conteúdo é "var2" então a variável passa a ser $var2 */
?>

Variáveis externas

São variáveis enviadas através de formulários, o parâmetro normalmente é informado pelo usuário final, através das superglobais $_POST e $_GET, por exemplo, é possível capturar essas variáveis externas. Acompanhe o exemplo:

Formulário HTML:

<form action="" method="post" name="form1">
<input type="text" name="txtNome" />
<input type="password" name="txtSenha" />
</form>

Código PHP para recuperar o valor digitado na caixa de texto txtNome. Suponha que foi digitado na caixa de texto os valores "nomeUser" e "senhaUser".

<?php
echo $_POST["txtNome"]; /*recuperando o conteúdo de txtNome no caso nomeUser */
?>

$_POST é uma variável superglobal do tipo array:

<?php
foreach( $_POST as $key => $value) {
   echo "$key => $value"; /* $key serão os índices e $value os valores informados nos campos, retornará txtNome => nomeUser txtSenha => senhaUser */
}
?>

Uma outra maneira de chamar variáveis de formulário é usando a função import_request_variables("String type", "String prefix"). Que transforma o $_POST em uma global.

<?php
Import_request_variables("p","pre_"); /* p para variáveis post, g para variáveis get e c para cookies, o parâmetro pre_ é um prefixo que é incorporado ao nome dos campos chamados */

echo pre_txtNome; //retorna o valor digitado no campo
echo pre_txtSenha;
?>

O $_GET é uma array que pega os dados diretamente da URL da página, ele irá armazenar o conteúdo que vem após o ponto de interrogação "?".

www.site.com.br/index.php?area=home
echo $_GET["home"]; // home

Cookies

São variáveis utilizadas para gravar informações no computador do cliente, muito utilizado em sites de compras. Isso torna o processamento da informação mais rápida, uma vez que já há uma prévia do conteúdo do site no computador cliente e algumas informações importantes como nome de usuário e senha. A função setcookie() realiza o procedimento de gravação dos cookies, este deve ser a primeira coisa a ser executada pelo navegador, fica no header do browser.

Referências


Página anterior    

Páginas do artigo
   1. Ato 1 - PHP e suas variáveis
   2. Várias variáveis
   3. Tipos de variáveis
Outros artigos deste autor

Snort - Gerenciamento de redes

Ato 3 - Estrutura de Controle e Funções

Ato 2 - comandos de saída, constantes e operadores em PHP (básico)

Nessus Portscanner

Leitura recomendada

Introdução ao PHP-GTK

Implementando scripts PHP com MySQL

Instalando Servidor LAMP no Ubuntu e Derivadas

Verdades e mentiras sobre tecnologias WEB

Xoops - Um ótimo gestor de portais em PHP

  
Comentários
[1] Comentário enviado por removido em 22/07/2010 - 09:08h

Muito bom artigo! Claro, conciso e preciso.

[2] Comentário enviado por leovailati em 22/07/2010 - 23:06h

Meus parabéns pelo artigo! Só para confirmar: haverá um segundo ato? Terceiro?

[3] Comentário enviado por wos- em 22/07/2010 - 23:12h

sim, haverá.
A idéia é que sejam feitos vários. este é só o começo

[4] Comentário enviado por hendrigo em 23/07/2010 - 11:15h

Em:
<?php
$a = "testando";
echo "$a" // resultará $a.
?>

acho que você quis dizer:

<?php
$a = "testando";
echo '$a' // resultará $a.
?>

Correto?

[5] Comentário enviado por wos- em 23/07/2010 - 13:50h

isto mesmo,
tive problemas na digitação, não havia reparado!
obrigado!

[6] Comentário enviado por fernandoamador em 23/07/2010 - 19:02h

ótimo artigo...

[7] Comentário enviado por Tadzio em 24/07/2010 - 16:55h

www.site.com.br/index.php?area=home
echo $_GET["home"]; // home
??

não seria:
www.site.com.br/index.php?area=home&pag=3
echo $_GET["area"]; // home
echo $_GET["pag"]; // 3

[8] Comentário enviado por thallesr em 24/07/2010 - 21:38h

Achei o conteúdo do artigo muito bom , mas acho que o texto ainda precisa de uma revisão , pois é ligeiramente confuso em algumas explicações.

[9] Comentário enviado por mbmaciel em 24/07/2010 - 23:57h

Onde se lê

echo pre_txtNome; //retorna o valor digitado no campo
echo pre_txtSenha;

não seria ...

echo $pre_txtNome; //retorna o valor digitado no campo
echo $pre_txtSenha;


[10] Comentário enviado por wos- em 26/07/2010 - 08:11h

Pessoal, acabei fazendo alguns exemplos sem testar.
erro infantil na verdade, peço desculpa pelas falhas.
não foram por não saber fazer foram por falta de atenção mesmo.
da próxima vez vou revisar melhor o texto e testar todos os exemplos,
mas espero que haja mais prós do que contras no artigo,
que eu possa ajudar quem está iniciando, assim como eu estou.
as correções feitas acima do companheiro Tadzio e do companheiro mordecai
estão certas e agradeço pelo toque, mais uma vez desculpem as falhas.

[11] Comentário enviado por kerneldark em 26/07/2010 - 11:59h

Olá, parabéns pelo artigo. Por acaso, você é o woshman, do projeto BRASILFW?
Até.

[12] Comentário enviado por wos- em 26/07/2010 - 13:15h

não, não.
qualquer semelhança é mera coincidência.

[13] Comentário enviado por dfts em 26/07/2010 - 15:24h

otimo artigo... bem legal pra quem inicia agora com php. :D

[14] Comentário enviado por Lisandro em 26/07/2010 - 22:54h

Bom artigo, aguardo a continuação...
Que tal uma revisão?

[15] Comentário enviado por lcarlesso em 28/07/2010 - 08:16h

otimo artigo..

[16] Comentário enviado por marcovinycios em 15/08/2010 - 16:45h

Bom artigo, gostei. Como estou iniciando vai me ajudar muito!!

[17] Comentário enviado por concurso em 06/10/2012 - 09:53h

Bom dia!

Estou vendo vários artigos aqui interessantes de php e estava a procura de exercícios de php básico e/ou intermediário, preciso exercitar para prova que vou fazer....
Alguém sabe de algum pela internet ou aqui no VOL?




Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts