Variáveis
Variáveis são recipientes de armazenamentos de dados temporários. Em php, uma variável pode conter qualquer tipo de dados, tais como, por exemplo, strings, inteiros, números de ponto flutuante, objetos e arrays. Php não é fortemente tipado, o que significa que ele irá implicitamente alterar o tipo de uma variável conforme necessário, dependendo da operação a ser realizada em seu valor.
Variáveis php são identificadas por um sinal de dólar $, seguido por um identificador. Variáveis devem ter seu identificador usando apenas letras (az, AZ), números ou o caractere sublinhado. Os nomes de variáveis devem iniciar por letras ou sublinhado, esses são apenas alguns dos identificadores case-sensitive (diferencia maiúsculas de minúsculas). Alguns exemplos abaixo:
$nome = ’valido’; // Variável valida
$_nome = ’valido’; // Variável valida
$1nome = ’invalido’; // Variável invalida, iniciada com um número.
Variável de variáveis
Em PHP, também é possível criar as chamadas variável de variáveis. Essa é uma variável cujo nome está contido em outra variável. Por exemplo:
$nome = ’valor1’;
$$nome = ’valor2’;
echo $valor1;
// será exibido na tela ’valor2’
Como você pode ver, neste exemplo, começamos a criar uma variável que contém a string valor1. Em seguida, nós usamos a sintaxe especial $$nome para indicar que queremos que interprete o dado da variável $nome como uma nova variável, assim a nova variável $valor1, será impressa na tela normalmente.
Devido à disponibilidade de variáveis de variáveis, que é efetivamente possível a criação de variáveis cujos nomes não seguem as limitações listadas acima. Também é possível definir o nome entre parênteses:
$nome = ’123’;
/* 123 é o nome da sua variável, números seria normalmente invalidos. */
$$nome = ’456’;
// Agora, você atribui um valor
echo ${’123’};
// Por fim, usando chaves você terá na tela ’456’
OBS: Variável de variáveis é uma ferramenta muito poderosa, e deve ser usada com extremo cuidado, porque o seu código é de difícil compreensão e de documentação, mas também, porque o seu uso inadequado pode levar a algumas importantes questões de segurança.
Uma técnica semelhante a variáveis de Variáveis também podem ser usadas para acessar nomes de funções dentro de uma variável:
function minhaFuncao() {
echo ’ minhaFuncao!’;
}
$f = ’ minhaFuncao’;
$f(); // irá chamar a função minhaFuncao();
Claramente, esta técnica deve ser utilizada com tanto cuidado como variáveis de variáveis, podendo assim ter varias oportunidades de erros e questões de seguranças bastante significativos.
Determinando se uma variável existe
Um dos pontos negativos de como php lida com variáveis é que não há nenhuma maneira de garantir que qualquer uma delas irá existir em qualquer ponto na execução de um script. Isso pode introduzir no seu sistema uma serie de problemas. Para minimizar o problema você pode utilizar o construtor especial isset():
echo isset ($x);
Uma chamada para o isset() irá retornar true se uma variável existe e tiver o valor diferente de NULL.