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