Todo código PHP é colocado dentro de uma supertag PHP, assim:
<?php
// Aqui dentro vai o código PHP
echo "Olá, Mundo!";
?>
O comando echo
no PHP é o comando de saída de mensagens, como o document.write do Javascript, e tags HTML são permitidas, por exemplo:
echo "<h3>Isso é uma frase em PHP</h3><br/>";
PS: Pode ser usado print
no lugar do echo, mas este não é muito usado. O print é uma herança do Perl.
Podemos também usar emojis unicode nas versões 7 e posteriores do PHP:
echo "Olá, Mundo!\u{1F30E}";
As variáveis em PHP sempre começam com um cifrão ($
), por exemplo:
$idade = 26;
$salario = 2565.97;
$nome = "Gaspar";
$casado = false;
As variáveis acima são de tipos diferentes, mas diferente de linguagens como o Java e o C, no PHP não existe declaração de variáveis, elas são identificadas automaticamente, como no Javascript. Strings sempre ficam entre aspas.
Mas você pode pré-definir os tipos de uma variável, forçando uma conversão, os typecasts são esses:
(int),(integer) // Inteiro
(real),(float),(double) // Real
(string) // Caracteres
PS: Não existe typecast para tipos booleanos(lógicos), eles são considerados números inteiros, com true
sendo 1
e false sendo uma variável vazia.
Veja como se usa o typecast:
$num = (string)5;
$nome = (int)"90";
Os comentários de uma linha se colocam ao lado de //
, e de várias linhas entre /* */
, por exemplo:
// Comentário de uma linha
/*
Comentário
de
várias
linhas
*/
No PHP, as concatenações são feitas com pontos, dessa forma:
$nome = "Andressa";
$idade = 32;
echo $nome . " tem " . $idade . " anos.";
Mas pelo fato das variáveis começarem com cifrão, em alguns casos, podemos colocar tudo entre aspas duplas (simples não funciona) sem concatenação que as variáveis serão identificadas normalmente, veja o código anterior dessa forma:
$nome = "Andressa";
$idade = 32;
echo "$nome tem $idade anos.";
Para declarar uma constante, basta usar const antes, e não usar cifrões, ela deverá sempre ser inicializada, assim:
const PI = 3.14159265359;
PS: Se quiser saber o tipo de uma variável ou constante em PHP, utilize o gettype
, dessa forma:
$teste = "Teste";
echo "O tipo da variável é " . gettype($teste);
PS: Pode ser necessário colocar um charset em arquivos que não contenham HTML com charset, nesse caso podemos fazer diretamente em PHP assim, no início da supertag PHP:
header("Content-type: text/html; charset=utf-8");
Assim como no Javascript, esses são os operadores em PHP:
Operador Aritmético | Significado |
---|---|
+ | Soma |
- | Subtração |
* | Multiplicação |
/ | Divisão |
% | Módulo |
Veja um exemplo simples de operação em PHP:
$n1 = 4;
$n2 = 5;
$res = $n1 + $n2;
echo "A soma entre $n1 e $n2 é igual a $res!";
Se colocar os resultados com concatenação, coloque sempre entre parênteses pra não dar erro. Veja alguns exemplos:
$n1 = 9;
$n2 = 4;
echo "A soma vale " . ($n1 + $n2) . "<br/>";
echo "A subtração vale " . ($n1 - $n2) . "<br/>";
echo "A multiplicação vale " . ($n1 * $n2) . "<br/>";
echo "A divisão vale " . ($n1 / $n2) . "<br/>";
echo "O módulo vale " . ($n1 % $n2) . "<br/>";
Lembre-se sempre da ordem de precedência da matemática, que na ordem é parênteses ()
, multiplicação *
, divisão /
(incluindo módulo %
), adição +
e subtração -
.
Veja um exemplo pra calcular a média:
$n1 = 9;
$n2 = 4;
$med = ($n1 + $n2) / 2;
echo "A média vale $med";
Se o usuário quiser informar o valor, podemo informar diretamente os parâmetros e o valor pela URL, após o nome da página, que seria algo assim:
http://localhost/TestePHP/index.php?a=8&b=2
Para que isso seja possível se usa o $_GET
, dessa forma:
$n1 = $_GET["a"];
$n2 = $_GET["b"];
$med = ($n1 + $n2) / 2;
echo "A soma vale " . ($n1 + $n2) . "<br/>";
echo "A subtração vale " . ($n1 - $n2) . "<br/>";
echo "A multiplicação vale " . ($n1 * $n2) . "<br/>";
echo "A divisão vale " . ($n1 / $n2) . "<br/>";
echo "O módulo vale " . ($n1 % $n2) . "<br/>";
echo "A média vale " . $med . "<br/>";
Também temos funções aritméticas em PHP, descritas abaixo:
A função abs()
é para pegar o valor absoluto de uma variável (valores sem traço negativo).
A função pow()
é para criar uma potencialização entre dois números.
A função sqrt()
é para mostrar a raiz quadrada.
A função round()
é para mostrar o número arredondado para um inteiro (até .5 ele arrendonda pra baixo, acima disso ele arredonda pra cima). Pra arredondar sempre pra cima se usa a função ceil()
, e para baixo se usa floor()
.
A função intval()
é para pegar a parte inteira de um número (não confundir com arredondamento).
A função rand()
é para gerar um número aleatório, definindo o mínimo e o máximo.
A função number_format()
é usada principalmente para converter números em formato de moeda. Atenção as vírgulas dentro do parâmetro: A primeira é a variável, a segunda são as casas decimais, o terceiro e o quarto são os símbolos de divisão (sendo o terceiro a parte fracionada e a quarta os milhares).
Veja todos os códigos acima funcionando:
$v1 = $_GET["x"];
$v2 = $_GET["y"];
echo "<h4>Valores recebidos $v1 e $v2</h4>";
echo "O valor absoluto de $v2 é " . abs($v2) . "<br/>";
echo "O valor de $v1 <sup>$v2</sup> é " . pow($v1, $v2) . "<br/>";
echo "A raiz quadrada de $v1 é " . sqrt($v1) . "<br/>";
echo "O valor arredondado de $v2 é " . round($v2) . "<br/>"; // ceil floor
echo "A parte inteira de $v2 é " . intval($v2) . "<br/>";
echo "Número aleatório entre $v1 e $v2: " . rand($v1, $v2) . "<br/>";
echo "O valor de $v1 em moeda é R\$ " . number_format($v1, 2, ",", ".") . "<br/>";
PS: A Barra antes do cifrão de R$ é uma sequência de escape, ela não aparecerá no código, é apenas pra não conflitar com as variáveis.
A função is_nan()
verifica se um valor numérico é NAN (não válido), por exemplo:
$num = $_GET["n"];
$raiz = sqrt($num);
if(is_nan($raiz)) {
echo "Número Inválido!";
}
else {
echo "A raiz de $num é $raiz.";
}
Para verificar se um valor é numérico, usamos is_numeric()
, assim:
$num = $_GET["n"];
if(is_numeric($num)) {
echo "O número é $num.";
}
else {
echo "Insira um número!";
}
Para fazer a divisão inteira, use o método intdiv(), assim:
echo intdiv(5, 2);
Para converter números de qualquer base para qualquer base, use o método base_convert()
, assim:
echo base_convert(16, 10, 2) . "<br/>"; // Converte 16 em decimal para binário
echo base_convert(16, 10, 8) . "<br/>"; // Converte 16 em decimal para octal
echo base_convert(16, 10, 16) . "<br/>"; // Converte 16 em decimal para hexadecimal
Além do operador de atribuição =
, comum em qualquer linguagem, temos também outras atribuições.
O valor de atribuição com adição +=
é um operador específico para os casos que a variável do início também faz parte do lado direito, como podem ver:
$a = 2;
$b = 5;
$c = $a + $b;
$c += 5; // Seria o mesmo que $c = $c + 5;
$b += $a; // Seria o mesmo que $b = $b + $a;
$a++; // Seria o mesmo que $a += 1; e $a = $a + 1;
Como visto acima, também podemos usar o incremento ++
ou o decremento --
.
Esses são os operadores de atribuição em PHP, todos eles com a variável recebendo ela mesma mais o operador aritmético:
Operador de Atribuição | Significado |
---|---|
+= | Adição com Atribuição |
-= | Subtração com Atribuição |
*= | Multiplicação com Atribuição |
/= | Divisão com Atribuição |
%= | Módulo com Atribuição |
.= | Concatenação com Atribuição |
Veja um exemplo de atribuições:
$preco = $_GET["p"];
echo "O preço do produto é R\$ " . number_format($preco, 2, ",", ".") . ".<br/>";
$preco += $preco * 10 / 100; // O mesmo que $preco = $preco + ($preco * 10 / 100);
echo "E o novo preço do produto com 10% de aumento é R\$ " . number_format($preco, 2, ",", ".") . ".";
Para fazer o mesmo, só que com desconto, basta mudar o sinal de + para -, assim:
$preco = $_GET["p"];
echo "O preço do produto é R\$ " . number_format($preco, 2, ",", ".") . ".<br/>";
$preco -= $preco * 10 / 100; // O mesmo que $preco = $preco - ($preco * 10 / 100);
echo "E o novo preço do produto com 10% de desconto é R\$ " . number_format($preco, 2, ",", ".") . ".";
Assim se usa os operadores de incremento e decremento em PHP:
$a++; // É o mesmo que $a = $a + 1;
$a--; // É o mesmo que $a = $a - 1;
Mas tome cuidado com o uso de incremento e decremento, eles vindo antes e depois da variável faz muita diferença, o recomendável é testar antes.
Nesse caso aqui, só funciona o pré-decremento, pois ele fará a conta antes da variável.
$atual = $_GET["aa"];
echo "O ano atual é $atual e o ano anterior é " . --$atual . ".";
Também é possível criar referência entre variáveis, simplesmente colocando um &
antes da variável, do lado direito. Nesse caso, a variável referenciada também se altera, junto com a original.
Sem referência de variável fica assim, só a variável alterada se altera.
$a = 8;
$b = $a;
$b += 13;
echo "A variável a vale $a.<br/>";
echo "A variável b vale $b.";
Já nesse caso, a variável referenciada se altera também.
$a = 8;
$b = &$a; // É como se b fosse declarada com ponteiro e sua variável pegasse o endereço de a.
$b += 13; // É como se o b fosse um ponteiro.
echo "A variável a vale $a.<br/>";
echo "A variável b vale $b.";
Existem também variáveis de variáveis (ou variáveis variantes), que não é muito utilizado, são variáveis criadas a partir do conteúdo de outras variáveis. Para isso, coloca outro $
na frente no cifrão já existente. Veja um exemplo:
$a = "teste";
$$a = "mensagem";
echo "O conteúdo da variável a é $a.<br/>";
echo "A variável criada recebeu o valor $teste.";