Curso de PHP/Variáveis: mudanças entre as edições
imported>Jorge Morais m (PHP - Variáveis movido para Curso de PHP/Comandos/Variáveis: formatação com barra) |
imported>Abacaxi Sem resumo de edição |
||
(12 revisões intermediárias por 5 usuários não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
'''Variáveis''': | |||
* 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 maiúsculos. | |||
* Não podem conter espaços! Se tiverem mais do que uma palavra deverão ser interligadas por um ''underscore'' <code>_</code>. | |||
Por exemplo: <code>$total_variavel</code>. | |||
== Alguns exemplos de variáveis == | == Alguns exemplos de variáveis == | ||
< | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?php | <?php | ||
$minha_variavel=4; | $minha_variavel=4; | ||
$minha_string="super "; | $minha_string="super "; | ||
echo $minha_string . $minha_variavel; | echo "$minha_string "." $minha_variavel"; | ||
?> | |||
</syntaxhighlight> | |||
O ponto <code>.</code> após a variável <code>$minha_string</code> concatena as variáveis. | |||
Deverá escrever na tela do navegador: ''super 4''. | |||
== Tipos == | |||
O PHP suporta todos os oito ''tipos primitivos''. | |||
=== Boolean === | |||
O <code>boolean</code> é um valor lógico que pode assumir ou <code>true</code> ou <code>false</code>. | |||
Neste exemplo o valor booleano é nos dado a conhecer pela ''função'' <code>gettype()</code>: | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?php | |||
echo gettype((bool) ""); // bool(false) | |||
echo gettype((bool) 1); // bool(true) | |||
echo gettype((bool) "foo"); // bool(true) | |||
?> | |||
</syntaxhighlight> | |||
Aqui apresentamos duas variáveis com valores lógicos: | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?php | |||
$foo = TRUE; | |||
$foo = FALSE; | |||
?> | |||
</syntaxhighlight> | |||
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 === | |||
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: | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?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 | |||
?> | |||
</syntaxhighlight> | |||
Se você especifica um inteiro além dos limites de um inteiro, o PHP o interpreta como um ponto flutuante, veja abaixo. | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?php | |||
$num = 2147483647; | |||
var_dump($num); // Saída: int(2147483647) | |||
?> | |||
</syntaxhighlight> | |||
Ou: | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?php | |||
$num = 2147483648; | |||
var_dump($num); // Saída: float(2147483648) | |||
?> | |||
</syntaxhighlight> | |||
É 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"> | |||
<?php | |||
var_dump(25/7); //float(3.5714285714286) | |||
var_dump((int) 25/7); //int(3) | |||
var_dump(round(25/7)); //float(4) | |||
?> | |||
</syntaxhighlight> | |||
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: | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?php | |||
$a = 1.234; | |||
$b = 1.3e4; | |||
$c = 25.4E-10; | |||
?> | |||
</syntaxhighlight> | |||
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: | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?php | |||
echo 'string delimitada por apóstrofos!'; | |||
echo "string delimitada por Aspas"; | |||
echo <<<EOF | |||
String delimitada por um heredoc | |||
EOF; | |||
?> | |||
</syntaxhighlight> | |||
A inclusão de variáveis funciona aqui de várias maneiras. Vamos ver: | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?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 | |||
?> | |||
</syntaxhighlight> | |||
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: | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?php | |||
$str = "Olha que alí há mal"; // Apresenta "Olha que alí há mal" | |||
$str{strlen($str)-1} = "r"; // Apresenta "Olha que alí á mar" | |||
?> | |||
</syntaxhighlight> | |||
Ou: | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?php | |||
$str = "Pegue isto"; // Apresenta "Pegue isto" | |||
$str{strlen($str)-10} = "S"; // Apresenta "Segue isto" | |||
?> | |||
</syntaxhighlight> | |||
Cabe à função <code>strlen()</code> essa tarefa. | |||
A ''função'' <code>strlen()</code>: retorna o tamanho de uma String. | |||
=== Arrays === | |||
Um ''array'' é um mapa ordenado, com chaves e valores. | |||
'''Exemplo''': | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?php | |||
$arr = array(1 => "um", 2 => "dois", 3 => TRUE); | |||
echo $arr[1]; // Imprime "um" | |||
echo $arr[3]; // Imprime "TRUE" | |||
?> | |||
</syntaxhighlight> | |||
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: | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?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); | |||
?> | |||
</syntaxhighlight> | |||
Podemos especificar apenas valores num array, sendo que o interpretador irá tornar cada um dos valores com uma chave a partir do zero. | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?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); | |||
?> | |||
</syntaxhighlight> | |||
== 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, <code>$var = "string"</code> é uma string, já <code>$var = 12</code>, é um inteiro. | |||
Para alternarmos entre os tipos usamos uma sintaxe de moldagens: | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?php | |||
$foo = 5; // $foo é um inteiro | |||
$bar = (boolean) $foo; // $bar é um boleano | |||
?> | |||
</syntaxhighlight> | |||
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: | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?php | |||
$str = "Eu sou string"; | |||
$int = 12; | |||
$num = 25/85; | |||
$a = (boolean) $str; | |||
$b = (string) $int; | |||
$c = (int) $num; | |||
echo $a . $b . $c; | |||
?> | |||
</syntaxhighlight> | |||
== 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: | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?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 _ | |||
?> | |||
</syntaxhighlight> | |||
É 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: | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?php | |||
$var = "Ganhou um prêmio!"; | |||
$count = 3; | |||
if ($count < 5){ | |||
echo $var; | |||
} | |||
?> | |||
</syntaxhighlight> | |||
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. | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?php | |||
print_r($GLOBALS); | |||
?> | |||
</syntaxhighlight> | |||
É possível fazer a referencia de um dos itens da variável GLOBALS: | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?php | |||
echo $GLOBALS["_SERVER"]["HTTP_HOST"]; | |||
?> | |||
</syntaxhighlight> | |||
=== $_SERVER === | |||
Variáveis criadas pelo servidor web e relacionadas com o ambiente de execução. | |||
Pode-se acessar os valores de _SERVER diretamente: | |||
<syntaxhighlight lang="php" enclose="div"> | |||
<?php | |||
echo $_SERVER["HTTP_USER_AGENT"]; | |||
?> | ?> | ||
</ | </syntaxhighlight> | ||
=== $_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. | |||
{{AutoCat}} |
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.