Sintaxe
Definir Código
Para demarcar o código php em seu html, use
<?php // Código aqui ?>
Como criar um Hello World?
<?php
echo "Hello World! \u{1F30E}";
?>
Resultado:
Hello World! 🌎
Livrai-me da maldição!
Comentar em PHP
Para comentar em php, basta usar // ou # para comentários de linha, e /**/ para comentários de bloco
// Comentário de linha 1
# Comentário de linha 2
/*
Comentário
em
bloco
*/
Concatenar strings em PHP
No js é comum utilizarmos "a" + "b" para concatenar a e b.
porém em PHP utilizamos "a" . "b" para concatenar a e b, observe:
<?php
echo "A" . "B";
?>
Resultado:
AB
Livrai-me da maldição!
Variáveis e Constantes
Usa-se $ para declarar variáveis e const NOME_VARIAVEL para constantes
<?php
$variavel = "variavel";
const CONSTANTE = "CONSTANTE";
echo "Eu sou $variavel e eu sou " . CONSTANTE;
?>
Observe que é necessário usar o operador . de concatenação
Resultado:
Eu sou variavel e eu sou CONSTANTE
Curiosidades sobre Variáveis em PHP
Observe o código abaixo:
$xablau = "xablauzin";
$$xablau = "Opa beleza?";
echo "$xablauzin";
Resultado:
Opa beleza?
Perceba que o PHP interpreta o valor de $xablau e nomeia a variável
e só depois atribui o valor a variável nomeada com o conteúdo de $xablau.
Case-Sensitive?
PHP é case-sensitive nas suas variávels, porém não é case-sensitive
nos seus comandos, observe:
<?php
$numero = 1;
$Numero = 2;
$NUMERO = 3;
echo "$numero Hello World! \u{1F30E}<br>";
ECHO "$Numero Hello World! \u{1F30E}<br>";
eCHo "$NUMERO Hello World! \u{1F30E}<br>";
?>
Resultado:
1 Hello World! 🌎
2 Hello World! 🌎
3 Hello World! 🌎
Estruturas de controle em PHP
<?php
$algo = "alguma_coisa";
if ($algo == "alguma_coisa") {
?>
<h5>algo é alguma_coisa</h5>
<
}
?>
Resultado:
algo é alguma_coisa
Funções e escopo de variáveis
<?php
$x = 10;
$y = 20;
function teste() {
$x = 100;
global $y, $z;
$z = 30;
echo "Escopo interno < x: $x | y: $y | z: $z ---- ";
}
teste();
echo "Escopo Externo > x: $x | y: $y | z: $z"
?>
Resultado:
Escopo interno < x: 100 | y: 20 | z: 30 ---- Escopo Externo > x: 10 | y: 20 | z: 30
Echo e Print
echo e print tem a mesma função de mandar informações para a tela;
<?php
print "E aí, print ou echo?
";
echo "Preferiria enfrentar o pato do tamanho de um urso ou urso do tamanho de um pato?<br><br>";
?>
Resultado:
E aí, print ou echo?
Preferiria enfrentar o pato do tamanho de um urso ou urso do tamanho de um pato?
Formatos de Strings
- Double Quoted
- Single Quoted
- Heredoc
- Nowdoc
Double Quoted x Single Quoted
$phpdq = "PHP \u{1F418}"; // Double quoted interpreta o conteúdo;
$phpsq = 'PHP \u{1F418}'; // Single Quoted não interpreta o conteúdo;
echo "echo aspas duplas: $php_dq";
echo "echo aspas duplas: $php_sq";
echo 'echo aspas simples: $php_dq';
echo 'echo aspas simples: $php_sq';
$nome = "Gabriel";
echo "echo aspas duplas: Olá $nome";
echo 'echo aspas simples: Olá $nome';
Resultado:
var aspas duplas e echo aspas duplas: PHP 🐘
var aspas simples e echo aspas duplas: PHP \u{1F418}
var aspas duplas e echo aspas simples: $php_dq
var aspas simples e echo aspas simples: $php_sq
echo aspas duplas: Olá Gabriel
echo aspas simples: Olá $nome
Aspas dentro de aspas
$nome = "Gabriel";
$snome = "De Oliveira Ribeiro";
# echo "$nome "DEORI" $snome<br>"; // Isso aqui vai dar erro
echo '$nome "DEORI" $snome<br>'; // Semântica incorreta
echo "$nome \"DEORI\" $snome<br>"; // \ Ignora sintaxe de próximo caracter
Resultado:
$nome "DEORI" $snome
Gabriel "DEORI" De Oliveira Ribeiro
Nas aspas simples apenas \' funciona como sequência de escaope
Nas aspas duplas porém:
- \n - Nova linha
- \t - Tabulação Horizontal
- \ - Barra invertida
- $ - Sinal de sifrão
- \u{} - Codepoint Unicode
$nome = "Gabriel";
$snome = "de Oliveira Ribeiro";
$apelido = "DEORI";
echo '$nome \'$apelido\' $snome<br>';
echo "$nome \"$apelido\" $snome<br>";
echo "$nome \"$apelido\" $snome<br>";
echo "$nome:\t$nome \n \"$apelido\":\t$apelido \n $snome:\t$snome<br>"
Resultado:
$nome '$apelido' $snome
Gabriel "DEORI" de Oliveira Ribeiro
Gabriel "DEORI" de Oliveira Ribeiro
Gabriel: Gabriel
"DEORI": DEORI
de Oliveira Ribeiro: de Oliveira Ribeiro
Sintaxe Heredoc
Dá pra quebrar linhas no formato texto (Não em HTML), mantém espaçamentos e interpreta
Observe a sintaxe:
$curso = "PHP";
$ano = date('Y');
echo <<< FRASE
FRASE;
Resultado:
Estou estudando
PHP em 2025!
SHOWW
Sintaxe Nowdoc
Dá pra quebrar linhas no formato texto (Não em HTML), mantém espaçamentos e não interpreta
Observe a sintaxe:
$curso = "PHP";
$ano = date('Y');
echo <<< 'FRASE'
Estou estudando
$curso em $ano!
SHOWW
FRASE;
Resultado:
Estou estudando
$curso em $ano!
SHOWW
Manipulação de strings
$frase = "Hello World x Olá Mundo!";
echo "caracteres:" . strlen($frase) . "<br>";
echo "palavras:" . str_word_count($frase) . "<br>";
echo "Reverso:" . strrev($frase) . "<br>";
echo "Posição de caractere de início de palavra:" . strpos($frase, "World") . "<br>";
echo "Troca sequência de char:" . str_replace("-", "/", "01-01-2023") . "<br>";
Resultado:
caracteres:25
palavras:5
Reverso:!odnuM lO x dlroW olleH
Posição de caractere de início de palavra:6
Troca sequência de char:01/01/2023
Tipagem
- Dinamicamente tipada.
- Fracamente tipada.
Escalares
- $sobrenome = "Silva" | string
- $idade = 27 | int ou integer
- $peso = 72.2 | float, double - tipo real só até 7.4
- $casado = true | bool ou boolean
Observe que:
- 0x1A | Hexadeciaml | INT
- 02818 | Octal | INT
- 0b1010 | Binário | INT
- 3e2 | 3*10^2 | DOUBLE
$string_set = "String Set";
$binary_number = 0b1010;
$octal_number = 010;
$decimal_number = 255;
$hex_number = 0x1f;
$pow_number = 3e2;
// Outras formas
$float_number = (float) "950";
$float_number = (double) "950";
// Removida na 7.4 VV
$float_number = (real) "950";
// Removida na 7.4 ^^
$string_set = (string) "250";
var_dump($string_set) // Mostra informações da variável
Resultados:
- string(10) "String Set"
- int(10)
- int(8)
- int(255)
- int(31)
- float(300)
Curiosidades
Em PHP o valor booleano "true = 1" por padrão ou pode ser qualquer valor;
Já o valor booleano "false = vazio" por padrão ou pode ser 0, null;
Compostos
$vet = [6, 2.5, "Maria", 3, false];
# echo "O vetor é $vet" // Array to string conversion não existe
var_dump($vet);
echo "<br><br>";
class carro { // Classe de objeto
public $cor;
public $modelo;
public function __construct($cor, $modelo)
{
$this->cor = $cor;
$this->modelo = $modelo;
}
public function mensagem() {
return "O carro é um $this->modelo $this->cor <br>";
}
}
$carro_1 = new carro("Preto", "Gol 3kilimei"); // Nova instância
echo $carro_1->mensagem();
var_dump($carro_1);
Resultado:
array(5) {
[0]=>
int(6)
[1]=>
float(2.5)
[2]=>
string(5) "Maria"
[3]=>
int(3)
[4]=>
bool(false)
}
O carro é um Gol 3kilimei Preto
object(carro)#1 (2) {
["cor"]=>
string(5) "Preto"
["modelo"]=>
string(12) "Gol 3kilimei"
}
Especiais
- null
- resource
- callable
- mixed