Por que eu devo ler este artigo:Neste documento será apresentado como declarar e utilizar variáveis e constantes. Conheceremos os vários tipos através de exemplos práticos.

Uma variável é um recurso das linguagens de programação utilizado para armazenar valores em memória. Assim, sempre que precisarmos desse valor, basta referenciarmos essa variável e obteremos o dado desejado.

Variáveis no PHP

A declaração de variáveis em PHP é bastante simples. Como a linguagem é fracamente tipada, não é necessário informar o tipo de dado na declaração. Sintaxe de declaração de variável:

$variavel;

Note que basta escrever o símbolo $ seguido do nome desejado. O tipo da variável será determinado conforme seu uso, ou seja, caso receba uma string, será do tipo string, caso receba um número inteiro, será uma variável do tipo inteiro.

Exemplos de declaração de variáveis:

// variável do tipo String
$nome = 'Meu nome 123'; 

// variável do tipo inteiro
$ano = 2017;      

// variável do tipo float              
$pi = 3.14159265;      
   
// variável do tipo booleano   
$sim = true;                      
A variável $nome possui números em seu conteúdo, mas uma vez entre aspas todo o conteúdo é considerado como texto (String).

Nomeação de variáveis

É necessário ser feita respeitando algumas regras e convenções:

  1. Não iniciar o nome com números;
  2. Não utilizar espaços em branco;
  3. Não utilizar caracteres especiais, somente underline.
  4. Criar nomes relevantes para facilitar o entendimento do código;
  5. Devem ser declaradas em minúsculo. Caso sejam nomes compostos, a primeira letra de todas as palavras, menos da primeira, deve ser maiúscula (ex: dataAniversario) ou separe-as pelo caractere underline (ex.: data_Aniversario);
Como PHP é uma linguagem case sensitive, $nomeum é diferente de $nomeUm.

Variáveis dinâmicas (Variáveis variáveis)

Com o PHP podemos criar novas variáveis definindo como o nome dessas o conteúdo de outra. Para isso devemos utilizar o símbolo $$ seguido do nome da variável que contém o nome para atribuição.

Exemplo de criação de variável dinâmica:


//Variavel $nome recebe o valor “variavel”
$nome = 'variavel'; 

//Declaração da nova variável. O identificador será o conteúdo de $nome       
$$nome = 'DevMedia'; 

//Exibe o conteúdo de $variavel 
echo $variavel;         

A execução deste código exibirá como resultado “DevMedia”. A ideia principal da variável dinâmica é possibilitar a criação de variáveis em tempo de execução.

Variáveis de classe

Ao declarar uma variável dentro de uma classe, antes do nome atribuído é comum especificar o modificador de acesso.

Sintaxe de declaração de variável em uma classe:

modificador_de_acesso $variavel

Como PHP é uma linguagem Orientada a Objetos, lembre-se que é com os modificadores de acesso que encapsulamos os atributos e métodos de uma classe.

Exemplos de declaração de variáveis/atributos em uma classe:


class Exemplo {
  private $variavelPrivada = 'Private';
  public $variavelPublica = 'Public';
  protected $variavelProtegida = 'Protected';
}

A palavra private é um modificador de acesso, assim como public e protected, vistas nos exemplos acima.

Exemplo prático de variáveis em PHP

Para demonstrar mais alguns exemplos de como declarar variáveis em PHP, observe as possibilidades a seguir.

Exemplo de uso:


<?php

// Declaração das variáveis
$nome_usuario = 'Meu nome';  // A variável recebe o valor Meu nome, do tipo String
$lote = 87; // A variável recebe o valor 87, do tipo int
$sim = true; // A variável recebe o valor true, do tipo boolean
$valor = 1.14; // A variável recebe o valor 1.14, do tipo float 
 
// Declaração variáveis variáveis
$nome = 'variavel';  // A variável recebe o valor variavel, do tipo String
$$nome = 'meu valor'; //$$nome terá como nome o valor de $nome, sendo $variável 
Execute o código

Constantes

Uma constante é um recurso das linguagens de programação que tem como objetivo armazenar um valor em memória de modo que não possa ser alterado. Assim, sempre que necessitarmos declarar um valor fixo para um cálculo, por exemplo, devemos criar uma constante para isso e referenciá-la no local desejado.

Neste documento será apresentado como declarar constantes em PHP com define() e const, e como utilizá-las.

define()

A função define() é a opção mais conhecida do PHP para criar constantes. Utilizamos essa função quando precisamos declarar uma constante com escopo global, isto é, fora do escopo de uma classe. Exemplo de uso na Listagem 1.

define('TEXTO', 'meu texto');
//Fora do escopo de uma classe
Listagem 1. Exemplo declaração de constante com função define()

Também é possível criar constantes dentro de funções. Contudo, essa função pode ser executada apenas uma vez, caso contrário um erro será gerado. A constante definida dessa forma ficará disponível apenas após a execução da função, sendo criada em tempo de execução.

Exemplo de uso de define() em uma função na Listagem 2.

function definir_max(){
  define("MAX", 10); //Criar constante dentro de uma função
}
 
definir_max();
Listagem 2. Exemplo declaração de constante dentro de uma função

O acesso aos valores de constantes definidas em funções é feito da mesma forma. Exemplo de uso na Listagem 3.

function definir_max() {
  define("MAX", 10);
}

//Cria a constante declarada na função
definir_max(); 

//Exibe o conteúdo da constante
echo(MAX);
Listagem 3. Exemplo de acesso aos valores de constantes

const

Outra opção para declarar constantes é utilizar a palavra reservada const. Com ela podemos criar constantes dentro e fora de uma classe. Até a versão anterior ao PHP 5.6, no entanto, const só podia ser aplicada dentro de classes. Exemplos de uso na Listagem 4.


const NOME = 'Alex';  //Fora do escopo de classe
 
class Empresa {
      const NOME_EMPRESA = 'DevMedia'; //Dentro do escopo de classe
}
Listagem 4. Exemplo declaração de constante com const

Assim, declaramos duas constantes: NOME e NOME_EMPRESA.

O acesso aos valores dessas constantes também é bastante simples.

Exemplos de uso na Listagem 5.

const NOME = 'Alex';  //Fora do escopo de classe
 
class Empresa {
      const NOME_EMPRESA = 'DevMedia'; //Dentro do escopo de classe
}

//Acessa constante definida em escopo global
echo NOME;                                 

//Acessa constante definida em escopo de classe
echo Empresa::NOME_EMPRESA;
  
Listagem 5. Exemplo acesso a constante definida em escopo global
Para obter o valor de uma constante criada em uma classe deve-se utilizar o operador de resolução de escopo (::).

Sintaxe:

echo NomeDaClasse::CONSTANTE_DESEJADA;

define() ou const?

Com essas opções, é importante saber quando utilizar cada uma.

define()

  • Quando é preciso criar a constante fora do escopo de uma classe (Programação Estruturada);
  • Quando o ideal é definir a constante em tempo de execução;
  • Também pode ser declarada dentro de estruturas de condição e repetição

const

  • Quando é preciso criar a constante dentro do escopo de uma classe (Programação Orientada a Objetos);
  • Quando o ideal é definir a constante em tempo de compilação.

Nomeação de constantes

Ao nomear uma constante é importante respeitar algumas regras e convenções:

  1. Não iniciar o nome com números;
  2. Não utilizar espaços em branco;
  3. Não utilizar caracteres especiais. Somente underline é permitido;
  4. Definir nomes relevantes, para facilitar o entendimento do código;
  5. Utilizar letras maiúsculas, facilitando a distinção em relação às variáveis.

Constantes mágicas

O PHP oferece algumas constantes especiais que visam facilitar algumas tarefas do dia a dia do programador, por exemplo. Chamadas de constantes mágicas, elas têm o valor definido conforme o contexto de uso. Geralmente exibem informações sobre o arquivo, diretório, classe, função em que foram declaradas.

A Tabela 1 apresenta todas as constantes mágicas do PHP:

Constante mágica Definição
__LINE__ Conterá o número da linha do script na qual ela foi declarada.
__FILE__ Conterá o caminho completo para o arquivo PHP no qual ela foi declarada.
__DIR__ Conterá o diretório do arquivo no qual ela foi declarada.
__FUNCTION__ Conterá o nome da função na qual ela foi declarada.
__CLASS__ Conterá o nome da classe na qual ela foi declarada.
__METHOD__ Conterá o nome da classe e do método no qual ela foi declarada.
__NAMESPACE__ Conterá o nome namespace no qual ela foi declarada.
__TRAIT__ Conterá o nome do trait no qual ela foi declarada.
NomeDaClasse::class Conterá o nome completo da classe no qual ela foi declarada.
Tabela 1. Constantes mágicas do PHP

Exemplo de uso de constantes mágicas na Listagem 6.

echo __LINE__;
echo __FILE__;
Listagem 6. Exemplo de uso de constantes mágicas

A execução desse código retornará o número da linha de código em que __LINE__ foi declarada, assim como o caminho completo do arquivo PHP que contém este código exemplo. Esse caminho fica armazenado na constante mágica __FILE__.

Exemplo prático

Para demonstrar mais alguns exemplos de como declarar e utilizar constantes em PHP, observe as possibilidades a seguir.

Exemplo de uso na Listagem 7.

<?php

//Declaração das constantes
define( 'NOME', 'Alex Sander' ); //Declarada a constante NOME com o valor Alex Sander, do tipo String
define ('ALTURA', 1.76); //Declarada a constante ALTURA com o valor 1.76, do tipo float
define('ATIVO', true); //Declarada a constante ATIVO com o valor true, do tipo boolean

const ATIVO = true; //Declarada a constante ATIVO com o valor true, do tipo boolean

//Declaração da classe Empresa
class Empresa {
  const NOME_EMPRESA = 'DevMedia'; //Declarada a constante NOME_EMPRESA com o valor DevMedia, do tipo String
  const ANO = 2017; //Declarada a constante ANO com o valor 2017, do tipo int
}
    
echo __FILE__; //Impresso a constante mágica __FILE__ que exibirá o caminho completo do arquivo PHP utilizado

echo ATIVO; /* É impresso o valor 1, como ATIVO é do tipo boolean o PHP o
             converte o true para 1 e caso fosse false o valor seria 0 */
Listagem 7. Exemplo de declaração de constantes
Execute o código