Continuando o Guia de PHP vou mostrar neste tópico o que são variáveis, constantes e arrays, algumas das principais estruturas utilizadas na linguagem para transportar dados entre partes do código. 

Nos tópicos anteriores você viu como iniciar em php, como fazer os primeiros códigos, como usar comentários e como executar seus primeiros trechos de php no browser. Agora vamos começar a aprender o que são as estruturas de dados que permitem que carreguemos dados entre partes de códigos durante o tempo de execução.

Os arrays, constantes e variáveis tem particularidades que diferem uma estrutura da outra, vamos fazer uma explicação do que é e como funciona cada uma delas e aplicar exemplos sobre. Assim você terá uma noção de como elas funcionam.

DICA: Fique muito atento a este tópico, pois será muito utilizado em todos os scripts que você criar.

Variáveis

Em termos práticos variáveis são estruturas de dados que podem ser modificadas em tempo de execução do código. Ou seja, você pode iniciar a variável em uma parte do código, e depois de atribuir outro valor a esta variável. 

Um exemplo de variável:

$minhavariavel = 10;
echo ($minhavariavel + 3);
//resultado = 13
?>

Toda variável em PHP começa com o caractere $ (cifrão) seguido do nome da variável, sem espaços. O nome pode conter letras maiúsculas e minúsculas, números, sublinhado, caractere _ (underline). Prefiro que você fique limitado a criar os nomes de suas variáveis com este conjunto de caracteres acima citado. Existem algumas regras de convenção para criar os nomes de variáveis e funções que vou mostrar no final deste tópico. Agora vamos nos ater ao funcionamento e uso das variáveis. 

Exemplo de mudança de valor da variável:

$minhavar = 10;
echo $minhavar;
//resultado = 10

$minhavar = 5;
echo '
'.$minhavar;
//resultado = 5

$minhavar += 3;
echo '
'.$minhavar;
//resultado = 8
?>

Fizemos três exemplos neste trecho, vamos traduzir o código e explicar o que foi feito:

  1. Definimos uma variável atribuindo um valor 10 a $minhavar. Depois mostramos o valor na tela com o echo. O resultado será o valor atribuído. 
  2. Agora definimos a variável com o valor 5, mostramos na tela com o echo (este echo colocamos um "
    " - quebra de linha em HTML - para que você possa ver um resultado abaixo do outro). O valor a ser mostrado agora será o 5. Quer dizer que já tínhamos a variável atribuída em nosso código, ela agora passou a ter outro valor e mostramos este novo valor na tela. Ou seja, você pode mudar o valor de uma variável em tempo de execução de código. 
  3. Neste terceiro exemplo, fizemos uma soma CONCATENADA. Quer dizer que assumimos o valor anterior desta variável, e somamos + 3 nela. Assim o resultado será o valor 5 que tínhamos antes + 3, ou seja = 8. 

Assim como o 3 exemplo que usamos uma soma concatenada, podemos fazer uma subtração concatenada, conforme exemplo abaixo:

$minhavar = 5;
$minhavar -= 3;
echo $minhavar;
//resultado = 2
?>

Ou seja, assumimos o valor 5, e depois descontamos 3, o resultado é igual a 2. Este foi um exemplo de soma e subtração para iniciar os esclarecimentos sobre operações aritméticas que também falaremos adiante.   

Constantes em PHP

Ao contrário de variáveis, a constante uma vez definida jamais pode ser alterada no decorrer da interpretação do código. O que isto significa? Uma vez setada a constante, ela assumirá este valor até o fim da execução do código. A constante também difere da variável quando se trata do código. Ela diferentemente da variável que apenas recebe um valor, precisa ser chamada (invocada) através de uma função nativa do PHP chamada "define", que é case_sensitive, isto quer dizer que o nome da constante é difere caracteres maiúsculos de minúsculos. 

define($nomedaconstante,$valordaconstante,$case_sensitive);

Primeiro parâmetro deve ser o nome da constante, segundo parâmetro deve ser o valor da constante. Conforme exemplo abaixo: 

define('CONSTANTE','Ola mundo');
echo CONSTANTE; //resposta sera: Ola Mundo
echo Constante; // resposta sera: Constante
?>

Qual a diferença entre as duas linhas de echo? Conforme falado acima, a constante é case_sensitive, e o PHP só consegue entender a constante quando você a chama exatamente com o nome que a definiu. 

O terceiro parâmetro, não usamos nos exemplos acima, mas ele define se você quer ou não usar case_sensitive na função define. Veja o exemplo abaixo:

define("MINHACONSTANTE", "Ola voce.",TRUE);
echo MINHACONSTANTE; // mostra "Ola voce."
echo Minhaconstante; // mostra "Ola voce"
?>

Ou seja, ao chamar a função define, e marcando o terceiro parâmetro como TRUE, ela passa a ser case_insensitive, o que permite chamá-la de qualquer forma. Dica: prefira sempre usar como case_sensitive, assim você sabe o nome correto da constante e sabe como usá-la no meio do código. 

Nota 1: As constantes não são iniciadas com $ (cifrão). Podem ser usadas somente com o nome escrito no primeiro parâmetro.
Nota 2: Por convenção, defina os nomes de constantes com letras maiúsculas. Assim ficará fácil de compreender o que é constante no meio de um código PHP.

Como verificar se uma constante existe?

Assim como chamamos a função define para criar a constante desejada, a única forma de saber que esta constante existe é chamando outra função. O nome dela é "defined":

defined($nomedaconstante);

Exemplo prático:

define('CONSTANTE','10');
echo CONSTANTE; // retorno = 10
if(defined('CONST'))
{
  echo 'esta definida';
}
else
{
  echo 'nao esta definida';
}
?>

O resultado será falso, e vai escrever na tela que não está definida. Por que? Pois nós testamos a função defined() com o nome "CONST" e não "CONSTANTE" como definimos na segunda linha do código. Desta forma você consegue saber se uma constante foi definida corretamente ou não.

Arrays em PHP

Arrays em PHP são estruturas de dados iguais matrizes em matemática. Ou seja, elas podem acumular diversos valores em linhas e colunas. Funciona parecida com uma tabela. Possui linhas e colunas que organizam os dados inseridos e manipulados nela. O array em php pode ser definido de diversas formas, vamos mostrar nos exemplos abaixo dois principais formatos para inserir dados neste array. Assim como nas variáveis é imprescindível o uso de $ (cifrão) para definir o nome do array. Vou mostrar alguns exemplos práticos com algumas imagens para que você possa compreender o que é um ARRAY. 

$meuarray = array('valor1','valor2',"valor3",'valor x');
print_r($meuarray);
//resultado = Array ( [0] => valor1 [1] => valor2 [2] => valor3 [3] => valor x )
?>

Definimos o array, chamando a função array(). Esta função permite que passamos por parâmetro quantos valores forem necessários, basta separar por vírgula os valores. Como são strings que passamos, elas devem obrigatoriamente estar entre aspas. Seja aspas simples (apóstrofe) ou aspas duplas (valor3).

Para mostrar na tela, diferente da variável, não podemos usar o echo, pois ele não consegue escrever o array, então chamamos uma função chamada print_r($array); que vai trazer os dados do array separados por posições. 

NOTA: O array começa a contagem em 0 (zero), e não em 1. Então sempre a primeira posição do array é 0. 

 

Como faço para escrever somente uma posição do array na tela?

Escrever apenas uma posição do array nos permite usar o echo, com 1 valor conseguimos usar ele. Mas a cadeia de valores não nos permite usar. Veja exemplo abaixo, que vamos escrever a posição 1 do array. Que é o "valor2". A posição 0 é o "valor1", e assim por diante.

echo $meuarray[1];
//resultado = valor2
?>

Para pegarmos uma posição do array, chamamos ele com o $nomedoarray seguido de abertura e fechamento de colchetes [], definindo assim que é um array ou para melhor compreensão, é um conjunto de valores. Dentro do colchete deve obrigatoriamente estar a posição que se quer mostrar. Como no primeiro exemplo de array mostramos as posições na saída do print_r(); 

Importante: Você deve compreender isto bem. Array começa em 0. As posições do array começam em zero, independente do valor que você adicionou nesta posição. 

 

Quando formos fazer laços como FOR, você verá as posições do array na prática. De imediato, apenas é preciso que você compreenda que array começa em 0.

Segunda forma de inserir valores em arrays:

Conforme falamos, o array pode ser iniciado de outra forma também, conforme abaixo:

$meuarray[0] = 'meuvalor';
$meuarray[1] = 'outrovalor';
print_r($meuarray);
//resultado = Array ( [0] => meuvalor [1] => outrovalor )
?>

Assim como escrever a posição desejada, você pode definir um valor para esta posição. No exemplo acima definimos na posição [0] o valor = "meuvalor" e na posição [1] = "outrovalor". 

Ainda podemos definir neste formato:

$meuarray[] = 'meuvalor';
$meuarray[] = 'outrovalor';
print_r($meuarray);
//resultado = Array ( [0] => meuvalor [1] => outrovalor )
?>

Se você não definir a posição que quer atribuir o valor, o array vai iniciar o seu acumulador e definir na primeira posição se ainda não tiver definido. Se ele estiver definido, o array vai assumir a próxima posição e assim por diante. A cada nova inserção de dados no array, ele incrementa (aumenta) a posição atual. 

Ainda sobre as posições, nos exemplos acima, vimos apenas sobre as colunas do array. Podemos ainda ter um array multi-linha. Que vai ter várias colunas e várias linhas, conforme exemplo abaixo:

$meuarray = array(
array('linha0-pos0','linha0-pos1','linha0-posx'),
array('linha1-pos0','linha1-pos1','linha1-posx'),
array('linhax-pos0','linhax-pos1','linhax-posx'));
echo '

';
print_r($meuarray);
echo '

';

/*RESULTADO:Array
(
[0] => Array
(
  [0] => linha0-pos0
  [1] => linha0-pos1
  [2] => linha0-posx
)

[1] => Array
(
  [0] => linha1-pos0
  [1] => linha1-pos1
  [2] => linha1-posx
)

[2] => Array
(
  [0] => linhax-pos0
  [1] => linhax-pos1
  [2] => linhax-posx
)

)*/

 

Conforme falado, temos no exemplo acima, um array multi-linha, onde iniciamos ele e dentro dele mesmo, adicionamos 3 arrays. Quando se adiciona array dentro de array ele passa a ser multi-linha. Usamos uma tag html PRE para ficar mais fácil de compreender o resultado do array, assim você consegue enxergar os múltiplos níveis dele.

Assim como temos 3 colunas e 3 linhas, podemos ter diversas linhas e colunas.

Também como mostramos para pegar uma posição na coluna, podemos pegar a posição linha e coluna, conforme exemplo abaixo:

echo $meuarray[1][1];
//resultado = linha1-pos1
?>

 

Concatenação de variáveis em PHP

Ainda sobre variáveis quero mostrar como funciona a concatenação de variáveis. Lembre desta palavra CONCATENAR. A concatenação funciona da seguinte maneira. Você tem uma variável com uma string e quer adicionar mais um pedaço de string no final desta variável, a concatenação é este ato, de adicionar mais um pedaço de texto no final do valor da variável. Conforme exemplo abaixo:

$minhavar = "meu texto";
echo $minhavar;
// resultado = meu texto

$minhavar .= " - aqui mais texto";
echo $minhavar;
//resultado = meu texto - aqui mais texto

#outro formato
echo $minhavar . " - e mais texto";
// resultado = meu texto - aqui mais texto - e mais texto

#duas variaveis
$varteste = "meu texto";
$varteste2 = "outro texto";
echo $varteste . $varteste2;
//resultado = meu textooutro texto

echo $varteste . " - string no meio - " . $varteste;
//resultado = meu texto - string no meio - outro texto
?>

O ato de concatenar é feito com o caractere . (ponto). 

  • Então nos exemplos acima, mostramos como concatenar uma variável com um texto, usando .= (ponto e igual);
  • Concatenar o texto no echo;
  • Concatenar 2 variáveis;
  • Concatenar 2 variáveis e uma string no meio.

A concatenação é muito utilizada no PHP, vale a pena você fazer alguns outros exemplos e praticar. 

Conclusão

Este tópico falamos bastante sobre variáveis, constantes e arrays. Os arrays vão ter um tópico específico para eles, pois existem muitas funções que podemos usar para tratar os dados dentro destes arrays, como ordenação, remoção de uma posição, adição de posição, tudo isto através de funções PHP. Mas isto ficará para depois de vermos o tópico funções. 

O resultado deste tópico para mim seria que você compreendesse o que é variável, o que é constante e o que é array, e como eles funcionam. Se você conseguir fazer alguns exemplos além dos mostrados, escrevendo os dados na tela e vendo o resultado será ótimo.

Como de praxe, qualquer dúvida comente abaixo.

[CURSO]118[/CURSO]