Na parte 5 dessa série de arquivos vimos sobre variáveis e tipos de dados.
Agora abordaremos mais um pouco sobre o assunto.
Booleano
valor booleano pode ser verdadeiro(true) ou falso(false).
Não há diferença entre maiúsculas de minúsculas. Então true, True, false, FALSE, faLse são a mesma coisa.
Outros valores, além do true ou false podem ser entendidos pelo PHP como booleano:
- false: a própria palavra false.
- 0: o número inteiro(integer) zero.
- 0.0: o número float(quebrado ou não inteiro) 0.0
- ‘ ‘ ou “0”: a string vazia (”) e a string “0”
- NULL: O valor NULO
Todos os demais valores ficam como true.
É comum no idioma inglês serem criadas variáveis booleanas com o prefixo(início) “is”. “is” significa “é” em português. Exemplos:
$is_submitted = false; $is_valid = true;
$is_submited é colocado para significar se um item foi enviado ou não.
já o $is_valid para dizer de algo é válido ou não.
Alguns programadores usam os nomes das variáveis em inglês outros em português. Os que criam em inglês costumam usar, além do “is”, outros prefixos como “has” para tem, “can” para pode, “was” para estava… mas isso é o de menos no momento, não devemos nos preocupar; primeiramente porque nosso idioma é português e, segundo, variável é livre para darmos qualquer nome. Mas, é bom seguirmos um padrão que traga sentido para os programadores que alterarão nosso código no futuro.
Ao usarmos echo se o booleano for verdadeiro será impresso na tela o 1. Se for falso não será exibido nada.
<html>
<?php
$foi_enviado = false;
$is_valido = true;
echo "valor é = $foi_enviado";
echo "<br>";
echo "valor é = $is_valido";
?>
</html>
Resultado:
valor é = valor é = 1
Int
A capacidade total de lidar com inteiros depende do sistema operacional.
Para integer podemos usar as constantes:
- PHP_INT_SIZE para obtermos o tamanho de um integer em bytes
- PHP_INT_MIN para obter o valor mínimo que o php instalado suporta a depender do sistema operacional(Windows, Linux…). Se o Sistema Operacional for 32 bits aparecerá -2147483647; mas se for 64 retornará -9223372036854775807.
- PHP_INT_MAX para obtermos o valor máximo que o php instalado suporta a depender do sistema operacional(Windows, Linux…). Se o Sistema Operacional for 32 bits aparecerá 2147483647; mas se for 64 retornará 9223372036854775807.
<html>
<?php
echo PHP_INT_SIZE;
echo "<br>";
echo PHP_INT_MIN;
echo "<br>";
echo PHP_INT_MAX;
?>
</html>
O resultado em meu pc Linux é:
8 -9223372036854775808 9223372036854775807
A partir do PHP 7.4, podemos usar sublinhados (_) para agrupar dígitos para facilitar a leitura.
<html>
<?php
$valor1 = 1_000_000
$valor2 = 4_501_000
?>
</html>
Até aqui vimos números decimais, porém há outros tipos, como:
Números octais
Os números octais consistem em um zero à esquerda e uma sequência de dígitos de 0 a 7. Como os números decimais, os números octais podem ter um sinal de mais (+) ou menos (-)
+010 // decimal 8
Números hexadecimais
Os números hexadecimais consistem em um 0x inicial e uma sequência de dígitos (0-9) ou letras (A-F). Por convenção, as letras são escritas em maiúsculas.
0x10 // decimal 16
0xFF // decimal 255
Números Binários
Os números binários que começam com 0b são seguidos por uma sequência de dígitos 0 e 1.
0b10 // decimal 2
Para não ficarmos com dúvidas sobre o uso de valores octais, hexadecimais e binários, vai uma dica: Os números octais são usados em sistemas de permissões de arquivos e os números hexadecimais são usados em programação e representação de cores. Já os binários são usados em sistemas de computação, como na representação de dados em circuitos eletrônicos e na transmissão de informações digitais.
Float
Os números de ponto flutuante são frequentemente chamados de números flutuantes(float), duplo(double) ou números reais.
O PHP reconhece números de ponto flutuante nos seguintes formatos comuns:
3.14
-0.1
Desde o PHP 7.4, você pode usar sublinhado em floats para tornar os números longos mais legíveis.
1_234_457.89
Para quem é cientista também podemos usar esse formato:
0.125E1 // significando 0.125 * 10^1 or 1.25
String
Sabemos que uma string é uma sequência de caracteres(letras, números….).
Uma variável pode receber uma string da seguinte forma:
Aspas duplas:
Acho que essa é a forma mais usada. Lembre-se que variáveis dentro de aspas duplas irão retornar seus valores.
$nome = "maria";
Se quisermos exibir na página as aspas podemos usar a barra \ para tirar o sentido.
$texto = "maria disse: \"fui para casa ontem\" ";
Dentro de aspas duplas o valor das variáveis são exibido(expandido).
$nome = "maria";
$nome2 = "joana";
$texto = "$nome e $nome2 são irmãs";
echo $texto;
O resultado do código acima será: maria e joana são irmãs
Em PHP, essa capacidade de mostrar o valor da variável dentro da aspas duplas é chamada de interpolação variável(variable interpolation);
Podemos também colocar a variável dentro de chaves.
$nome = "maria";
$nome2 = "joana";
$texto = "{$nome} e {$nome2} são irmãs";
echo $texto;
O resultado é o mesmo.
strings com aspas duplas também aceitam caracteres especiais, por exemplo, \n, \r, \t.
Aspas simples:
É uma boa prática usar strings com aspas simples quando você não usa interpolação de variáveis porque o PHP não precisará analisá-las.
Aspas simples não expande as variáveis, ou seja, não exibe seus valores.
$nome = "maria";
$nome2 = "joana";
$texto = '$nome e {$nome2} são irmãs';
echo $texto;
O resultado do código acima será: $nome e {$nome2} são irmãs
Como alternativa, para imprimir variável na tela podemos usar o ponto “.” para juntar(concatenar) duas ou mais strings.
$nome = "maria";
$nome2 = "joana";
$texto = $nome . 'e' . $nome2 . 'são irmãs';
echo $texto;
PHP heredoc:
A string heredoc torna a string mais fácil de ser lida.
As strings PHP heredoc se comportam como strings com aspas duplas, só que sem as aspas duplas. Isso significa que elas não precisam escapar(tirar o sentido com \ ) de aspas ou expandir variáveis. Podemos teclar ENTER quantas vezes desejarmos também.
Para usar basta colocar o texto entre <<<NOMEQUALQUER NOMEQUALQUER;
NOMEQUALQUER é qualquer nome que você queira.
$texto = <<<IDENTIFICADOR
esse é um
texto como exemplo de string
com PHP heredoc.
Posso expandir variáveis
teclar enter
usar aspas ' ' e " "
IDENTIFICADOR;
O identificador deve conter apenas caracteres alfanuméricos e sublinhados e começar com um sublinhado ou um caractere que não seja um dígito.
O identificador de fechamento deve:
- Começar na primeira coluna da linha
- Não conter outros caracteres, exceto um ponto e vírgula (;)
- O caractere antes e depois do identificador de fechamento deve ser um caractere de nova linha, ou seja, deve ser teclado ENTER antes e depois.
Podemos usar uma string heredoc para gerar HTML dinamicamente. Por exemplo:
<?php
$titulo = 'Meu Site';
$cabecalho = <<<HEADER
<header>
<h1>$titulo</h1>
</header>
HEADER;
echo $cabecalho;
PHP nowdoc:
Uma string nowdoc é semelhante a uma string heredoc, exceto que não expande as variáveis.
É levemente diferente do heredoc na sintaxe pois o identificador que segue o operador <<< precisa ser colocado entre aspas simples.
Quanto às regras de uso, são as mesmas que o heredoc.
<?php
$texto = <<<'IDENTIFICADOR'
esse é um
texto como exemplo de string
com nowdoc.
NÃO expande variáveis
mas podemos teclar enter
e usar aspas ' ' e " "
IDENTIFICADOR;
echo $texto;
?>
NULL
O tipo null tem apenas um valor que é justamente o nulo. Na verdade, null indica a ausência de um valor para uma variável.
NULL é case-insensitive, ou seja, não diferencia maiúsculas de minúsculas. Podemos usar null, Null ou NULL para representar o valor nulo.
<?php
$valor = null;
var_dump($valor); //irá retornar nulo.
Também, quando usamos a função unset() numa variável ela se torna nula.
<?php
$valor = 79.6;
unset($valor);
var_dump($email); //irá retornar nulo.
Complementando Mais um Pouco
Podemos usar as seguintes funções para ver se um número é int, float, booleano, is_null
is_float($numero); //podemos usar também is_real()
is_int($numero);
is_bool($numero);
is_string($numero);
is_null($numero);
Podemos também incluir uma das funções acima dentro de var_dump().
<?php
$texto = "string" ;
echo is_string($texto);
echo "<br>";
echo var_dump(is_string($texto));
Quanto à string, podemos exibir um caractere em uma certa posição
<?php
$nome = "joao silva";
echo $nome[0];
echo "<br>"
echo $nome[2];
o resultado será
j
a
Para obter o comprimento de uma string usamos a função strlen();
<?php
$nome = "joao silva";
echo strlen($nome);
O resultado será 10