Saltar para o conteúdo

Curso de PHP/Variáveis

Origem: Wikilivros, livros abertos por um mundo aberto.

Variáveis:

  • Começam sempre pelo símbolo $ seguido de uma letra.
  • Podem conter símbolos numéricos (0 - 9) alfanuméricos minúsculos (a - z) e alfanuméricos maiúsculos.
  • Não podem conter espaços! Se tiverem mais do que uma palavra deverão ser interligadas por um underscore _.

Por exemplo: $total_variavel.

Alguns exemplos de variáveis

[editar | editar código-fonte]
<?php
$minha_variavel=4;
$minha_string="super ";
echo "$minha_string "." $minha_variavel";
?>

O ponto . após a variável $minha_string concatena as variáveis.

Deverá escrever na tela do navegador: super 4.

O PHP suporta todos os oito tipos primitivos.

O boolean é um valor lógico que pode assumir ou true ou false.

Neste exemplo o valor booleano é nos dado a conhecer pela função gettype():

<?php
echo gettype((bool) "");     // bool(false)
echo gettype((bool) 1);      // bool(true)
echo gettype((bool) "foo");  // bool(true)
?>

Aqui apresentamos duas variáveis com valores lógicos:

<?php
$foo = TRUE;
$foo = FALSE;
?>

Como podemos ver no exemplo acima, uma expressão tem um valor booleano true se ela contiver alguma coisa, e false se o seu conteúdo for nulo.

Um inteiro é um número do conjunto Z = { ...,-3,-2,-1,0,1,2,3,... }. Pode-se especificar através de notação decimal (de base 10), hexadecimal (base 16) ou octal (base 8), opcionalmente precedido de sinal (- ou +).

Representação de inteiros:

<?php
$a = 1234; # número decimal
$a = -123; # número negativo
$a = 0123; # número octal - precedido de um 0 - equivalente a 83 em decimal
$a = 0X1A; # número hexadecimal - precedido de um 0 e um X - equivalente a 26 em decimal
?>

Se você especifica um inteiro além dos limites de um inteiro, o PHP o interpreta como um ponto flutuante, veja abaixo.

<?php
$num = 2147483647;
var_dump($num);     // Saída: int(2147483647)
?>

Ou:

<?php
$num = 2147483648;
var_dump($num);     // Saída: float(2147483648)
?>

É necessário ter em atenção que na saída de uma fração para um inteiro', os arredondamentos não seguem a regra matemática, sendo assim é necessário o uso da função round():

<?php
var_dump(25/7);         //float(3.5714285714286)
var_dump((int) 25/7);   //int(3)
var_dump(round(25/7));  //float(4)
?>

Evite transformar uma fração de valor desconhecido para inteiro.

Números de ponto flutuante

[editar | editar código-fonte]

Os números de ponto flutuante (floats e doubles) são números com casas decimais, onde, aqui, a vírgula é substituída por um ponto:

<?php
$a = 1.234;
$b = 1.3e4;
$c = 25.4E-10;
?>

Aqui também é necessário ter em atenção os arredondamentos.

Uma string é uma série de caracteres sem limites de comprimento. Ela é delimitada, no PHP, por Aspas, apóstrofo ou pela nova sintaxe heredoc:

<?php
echo 'string delimitada por apóstrofos!';
echo "string delimitada por Aspas";
echo <<<EOF
String delimitada por um heredoc
EOF;
?>

A inclusão de variáveis funciona aqui de várias maneiras. Vamos ver:

<?php
$carro = "Mercedes";
echo "Ele comprou um bonito $carro";     // funciona
echo "Eles compraram vários {$carro}s";  // funciona
echo "Eu faço um ${carro}";              // funciona
?>

As saídas serão:

  • Ele comprou um bonito Mercedes
  • Eles compraram vários Mercedess
  • Eu faço um Mercedes

Podemos também modificar strings:

<?php
$str = "Olha que alí há mal";   // Apresenta "Olha que alí há mal"
$str{strlen($str)-1} = "r";     // Apresenta "Olha que alí á mar"
?>

Ou:

<?php
$str = "Pegue isto";        // Apresenta "Pegue isto"
$str{strlen($str)-10} = "S";  // Apresenta "Segue isto"
?>

Cabe à função strlen() essa tarefa.

A função strlen(): retorna o tamanho de uma String.

Um array é um mapa ordenado, com chaves e valores.

Exemplo:

<?php
$arr = array(1 => "um", 2 => "dois", 3 => TRUE);
echo $arr[1];  // Imprime "um"
echo $arr[3];  // Imprime "TRUE"
?>

Aqui nos é apresentado 3 chaves (1, 2 e 3) e 3 valores ("um", "dois" e TRUE).

Então podemos pegar uma chave de um array para imprimirmos o valor correspondente. Podemos também definir um array como vários array:

<?php
$arr = array("versão" => array ("beta"    => "0.5x",
                                "alpha"   => "0.1x",
                                "release" => "0.8x",
                                "final"   => "1.x"
                                ),
             "nome" => "PHP software",
             "SO" => array("win" => "Windows",
                           "lin" => "Linux",
                           "mac" => "MacOS"
                           )
             );

// Vamos agora remover um elemento do array, visto que o nosso software já passou a fase alpha
unset($arr["versão"]["alpha"]);

// Também podemos apagar o array inteiro. Já não vamos disponibilizar o nosso software
unset($arr);
?>

Podemos especificar apenas valores num array, sendo que o interpretador irá tornar cada um dos valores com uma chave a partir do zero.

<?php
$arr = array(1,45,23,68);
echo $arr[1]; // imprime 45

// Vamos agora apagar um valor e reindexar o nosso array:
unset($arr[1]);
$arr = array_values($arr);
// Não podemos imprimir o nosso array através de echo. Temos que fazer isso com print_r():
print_r($arr);
?>

Manipulação de Tipos

[editar | editar código-fonte]

No PHP não é necessário definir o tipo que queremos usar, ou seja, este é determinado pelo contexto em que é usado. Por exemplo, $var = "string" é uma string, já $var = 12, é um inteiro.

Para alternarmos entre os tipos usamos uma sintaxe de moldagens:

<?php
$foo = 5;                  // $foo é um inteiro
$bar = (boolean) $foo;     // $bar é um boleano
?>

Moldagens permitidas:

  • int ou integer: moldar para inteiro.
  • bool ou boolean: moldar para booleano.
  • float, double ou real: moldar para número de ponto flutuante.
  • string: moldar para string.
  • array: moldar para array.
  • object: moldar para objeto.

Exemplos de moldes:

<?php
$str = "Eu sou string";
$int = 12;
$num = 25/85;

$a = (boolean) $str;
$b = (string) $int;
$c = (int) $num;

echo $a . $b . $c;
?>

As variáveis são no PHP representadas por um $ seguido do nome a ela atribuído. É necessário ter em conta alguns cuidados quando criamos variáveis:

<?php
$var = "Bom ";
$Var = "dia!";
echo $var . $Var;   // Exibe "Bom dia!"

$25arrobas = "Ainda por cumprir!";   // INVÁLIDO - Nenhum nome de variável pode
começar por uma expressão numérica
$_25arrobas = "Quase na linha!";    // VÁLIDO - Nome começa por _
?>

É possível escrever-se qualquer um dos 8 tipo primitivos numa variável. As variáveis são usadas para se atribuir um valor e guardá-lo na memória do computador para execução posterior:

<?php
$var = "Ganhou um prêmio!";
$count = 3;
if ($count < 5){
  echo $var;
}
?>

O script acima exibirá "Ganhou um prêmio!" se o valor da variável $count for menor que 5.

Variáveis predefinidas

[editar | editar código-fonte]

O PHP oferece variáveis predefinidas de informações vindas do servidor e do navegador, que podem ser usadas pelo programador. são as chamadas superglobais.

Contém referências para todas as variáveis que estão disponíveis dentro do script.

<?php
  print_r($GLOBALS);
?>

É possível fazer a referencia de um dos itens da variável GLOBALS:

<?php
  echo $GLOBALS["_SERVER"]["HTTP_HOST"];
?>

Variáveis criadas pelo servidor web e relacionadas com o ambiente de execução.

Pode-se acessar os valores de _SERVER diretamente:

<?php
   echo $_SERVER["HTTP_USER_AGENT"];
?>

Variáveis enviadas por script para o servidor via método HTTP GET. O que é enviado pelo formulário é mostrado na barra de endereço.

Variáveis enviadas por script para o servidor via método HTTP POST. O que é enviado pelo formulário não é mostrado na barra de endereço do navegador.

Variáveis enviadas por script para o servidor via cookies HTTP.

Variáveis enviadas para o script com todas as informações relativas aos arquivos enviados via HTTP.

Variáveis disponíveis no script do ambiente em execução. Em Web é igual ao $_SERVER.

Possui todas as variáveis englobadas em $_GET, $_POST e $_COOKIE. Em desuso devido à demora na realização do script!

Variáveis que estão diretamente relacionadas no registro da sessão no script.