Curso de PHP/Variáveis: mudanças entre as edições
imported>Guiwp Sem resumo de edição |
imported>Abacaxi Sem resumo de edição |
||
(6 revisões intermediárias por um outro usuário não estão sendo mostradas) | |||
Linha 3: | Linha 3: | ||
* Começam sempre pelo símbolo <code>$</code> seguido de uma letra. | * Começam sempre pelo símbolo <code>$</code> seguido de uma letra. | ||
* Podem conter ''símbolos'' numéricos ('''0 - 9''') alfanuméricos minúsculos ('''a - z''') e alfanuméricos | * 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'' <code>_</code>. | * Não podem conter espaços! Se tiverem mais do que uma palavra deverão ser interligadas por um ''underscore'' <code>_</code>. | ||
Linha 30: | Linha 30: | ||
O <code>boolean</code> é um valor lógico que pode assumir ou <code>true</code> ou <code>false</code>. | O <code>boolean</code> é um valor lógico que pode assumir ou <code>true</code> ou <code>false</code>. | ||
Neste exemplo o valor | Neste exemplo o valor booleano é nos dado a conhecer pela ''função'' <code>gettype()</code>: | ||
<syntaxhighlight lang="php" enclose="div"> | <syntaxhighlight lang="php" enclose="div"> | ||
Linha 38: | Linha 38: | ||
echo gettype((bool) "foo"); // bool(true) | echo gettype((bool) "foo"); // bool(true) | ||
?> | ?> | ||
</syntaxhighlight> | |||
Aqui apresentamos duas variáveis com valores lógicos: | Aqui apresentamos duas variáveis com valores lógicos: | ||
<syntaxhighlight lang="php" enclose="div"> | |||
<?php | <?php | ||
$foo = TRUE; | $foo = TRUE; | ||
Linha 47: | Linha 49: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Como podemos ver no exemplo acima, uma expressão tem um valor | Como podemos ver no exemplo acima, uma expressão tem um valor booleano <code>true</code> se ela contiver alguma coisa, e <code>false</code> se o seu conteúdo for nulo. | ||
=== Inteiros === | === Inteiros === | ||
Linha 53: | Linha 55: | ||
Um inteiro é um número do conjunto Z = { ...,-3,-2,-1,0,1,2,3,... }. | 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 +). | 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: | |||
<syntaxhighlight lang="php" enclose="div"> | <syntaxhighlight lang="php" enclose="div"> | ||
<?php | <?php | ||
$a = 1234; # número decimal | $a = 1234; # número decimal | ||
Linha 61: | Linha 64: | ||
$a = 0123; # número octal - precedido de um 0 - equivalente a 83 em decimal | $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 | $a = 0X1A; # número hexadecimal - precedido de um 0 e um X - equivalente a 26 em decimal | ||
?> | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Linha 69: | Linha 73: | ||
$num = 2147483647; | $num = 2147483647; | ||
var_dump($num); // Saída: int(2147483647) | var_dump($num); // Saída: int(2147483647) | ||
?> | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Linha 74: | Linha 79: | ||
<syntaxhighlight lang="php" enclose="div"> | <syntaxhighlight lang="php" enclose="div"> | ||
<?php | |||
$num = 2147483648; | $num = 2147483648; | ||
var_dump($num); // Saída: float(2147483648) | var_dump($num); // Saída: float(2147483648) | ||
Linha 79: | Linha 85: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
É necessário ter em atenção que na saída de uma | É 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 <code>round()</code>: | ||
<syntaxhighlight lang="php" enclose="div"> | <syntaxhighlight lang="php" enclose="div"> | ||
Linha 89: | Linha 95: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Evite transformar uma '' | Evite transformar uma ''fração'' de valor desconhecido para inteiro. | ||
=== Números de ponto flutuante === | === Números de ponto flutuante === | ||
Linha 143: | Linha 149: | ||
$str{strlen($str)-1} = "r"; // Apresenta "Olha que alí á mar" | $str{strlen($str)-1} = "r"; // Apresenta "Olha que alí á mar" | ||
?> | ?> | ||
</syntaxhighlight> | |||
Ou: | Ou: | ||
Linha 228: | Linha 235: | ||
Moldagens permitidas: | Moldagens permitidas: | ||
* | * <code>int</code> ou <code>integer</code>: moldar para inteiro. | ||
* | * <code>bool</code> ou <code>boolean</code>: moldar para booleano. | ||
* | * <code>float</code>, <code>double</code> ou <code>real</code>: moldar para número de ponto flutuante. | ||
* | * <code>string</code>: moldar para string. | ||
* | * <code>array</code>: moldar para array. | ||
* | * <code>object</code>: moldar para objeto. | ||
Exemplos de moldes: | Exemplos de moldes: | ||
Linha 271: | Linha 278: | ||
<syntaxhighlight lang="php" enclose="div"> | <syntaxhighlight lang="php" enclose="div"> | ||
<?php | <?php | ||
$var = "Ganhou um | $var = "Ganhou um prêmio!"; | ||
$count = 3; | $count = 3; | ||
if ($count < 5){ | if ($count < 5){ | ||
Linha 279: | Linha 286: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
O script acima exibirá "Ganhou um | O script acima exibirá "Ganhou um prêmio!" se o valor da variável $count for menor que 5. | ||
== Variáveis predefinidas == | == Variáveis predefinidas == |
Edição atual tal como às 13h20min de 8 de janeiro de 2014
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
<?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.
Tipos
O PHP suporta todos os oito tipos primitivos.
Boolean
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.
Inteiros
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
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.
Strings
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.
Arrays
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
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
ouinteger
: moldar para inteiro.bool
ouboolean
: moldar para booleano.float
,double
oureal
: 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;
?>
Variáveis
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
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.
$GLOBALS
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"];
?>
$_SERVER
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"];
?>
$_GET
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.
$_POST
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.
$_COOKIE
Variáveis enviadas por script para o servidor via cookies HTTP.
$_FILES
Variáveis enviadas para o script com todas as informações relativas aos arquivos enviados via HTTP.
$_ENV
Variáveis disponíveis no script do ambiente em execução. Em Web é igual ao $_SERVER.
$_REQUEST
Possui todas as variáveis englobadas em $_GET, $_POST e $_COOKIE. Em desuso devido à demora na realização do script!
$_SESSION
Variáveis que estão diretamente relacionadas no registro da sessão no script.