- 1. Seja Bem Vindo
- 2. Um Pouco de Contexto
- 3. Configurando Ambientes
- 4. Iniciando com PHP
- 5. Operadores
- 6. Estruturas de Controle: Condicional
- 7. Arrays & Estruturas de Repetição
- 8. Iniciando Mini-Projeto
- 9. PHP & Formulários
- 10. Começando com Banco de Dados
- 11. PHP & Banco de Dados
- 12. Funções & Organizando CRUD
- 13. Estilizando Painel e Upload de Arquivos
- 14. Session, Cookies & Autenticação
- 15. Banco de Dados: Falando Sobre Relacionamentos
- 16. Concluindo Mini Projeto
- 17. Iniciando com Orientação a Objetos
- 18. Relação entre Objetos
- 19. Mais Recursos OO
- 20. PHP 8: Novidades & Atualização + Ecossistema
- 21. Autoload & Namespaces
- 22. Importante: Métodos Mágicos & Exceptions
- 23. MVC com PHP
$composer up -d
<?php
echo "<br>";
//Com tipo Inteiro
echo 10000;
echo "<br>";
//Com tipo string: caracteres
echo "Olá Mundo";
echo "<br>";
//Com tipo Booleano
echo true; //exibe o valor 1
echo "<br>";
echo false; // não exibe nada
echo "<br>";
//Com tipo Ponto Flutuante
echo 19.99;
echo "<br>";
echo 1099.90;
<?php
echo "<br>";
//inteiros 1,2,3,4,5,6,7,8,9 -1, -2
echo -2;
echo "<br>";
echo 2;
echo "<br>";
//Sistema Octal no PHP
//Prefixado 0
echo 0777; //retorna 511
echo "<br>";
//Sistema Hexadecimal
//Prefixado com 0x
echo 0x1FF; //retorna 511
echo "<br>";
//Float
echo 10.99;
echo "<br>";
echo 0.90;
echo "<br>";
echo "<br>";
/*apesar de retornar 1, por conta do .
o php entende como float
*/
echo 1.0;
//Retorna o tipo do dados informado no gettype
echo gettype(1.0); // double
echo "<br>";
/*
Contantes tamanho minimo e maximo
suportado pelo PHP para tipo inteiro
*/
echo PHP_INT_MIN; // -9223372036854775808
echo "<br>";
echo PHP_INT_MAX; // 9223372036854775807
echo "<br>";
echo "<br>";
/*
Contantes tamanho minimo e maximo
suportado pelo PHP para tipo float
*/
echo PHP_FLOAT_MIN; // 2.2250738585072E-308
echo "<br>";
echo PHP_FLOAT_MAX; // 1.7976931348623E+308
echo "<br>";
//Exponencial: 13.3 (E)levado a 10 +2
//(a virgula se movimenta 2 casas para a direita por conta do +2)
echo 13.3e+2; //Res.: 1300.00
echo "<br>";
//Exponencial: 13.3 (E)levado a 10 -3
//(a virgula se movimenta 3 casas para a esquerda por conta do -3)
echo 13.3e-3; // Res.: 0.0133
<?php
echo "<br>";
echo "Isto é uma string...";
echo "<br>";
echo gettype("Isto é uma string...");
echo '<br>';
echo 'Isto é uma string com aspas simples...';
echo '<br>';
echo gettype('Isto é uma string...');
echo '<br>';
echo "PHP"[1]; // H
echo "<br>";
echo "ABC"[-3]; //indice negativos: PHP 7.1...
echo "<br>";
echo "Estou programando com " . "PHP";
echo "<br>";
echo 'Quero aprender \'PHP\'';
echo "<br>";
echo "Quero aprender \\ \"PHP\"";
echo "<br>";
echo "dsndsididnisd dsds
ddsidnsidnsidnsindisd
dsdd dsodoskdoskdoksod dsokdsod
sdosdsodksokdoskdo dksodksodkso";
//NOWDOC e HEREDOC
Isto é uma string...
string
Isto é uma string com aspas simples...
string
H
A
Estou programando com PHP
Quero aprender 'PHP'
Quero aprender \ "PHP"
dsndsididnisd dsds ddsidnsidnsidnsindisd dsdd dsodoskdoskdoksod dsokdsod sdosdsodksokdoskdo dksodksodkso
<?php
//Conta os caracteres
echo strlen("Testando Strings"); // 16
echo "<br>";
//Pegar parte da string
//Pega a partir da posição 0, 7 caracteres
echo substr("Testando Strings", 0, 7); // Testand
echo "<br>";
//Pega a partir da posição -4(i), 2(in) caracteres
echo substr("Testando Strings", -4, 2); // in
echo "<br>";
//Pega da posição 7 até o fim da strings
echo substr("Testando Strings", 7); // o Strings
echo "<br>";
//Pega da posição -7 até o fim da string
echo substr("Testando Strings", -7); // Strings
//adicionar caracteres extras
echo "<br>";
echo str_pad("Testee", 8, "-", STR_PAD_BOTH); // -Testee-
//maiusculo e minusculo
echo '<br>';
echo strtoupper("fica maiuscula!"); // FICA MAIUSCULA!
echo '<br>';
echo strtolower("FICA MINUSCULA"); // fica minuscula
//encontrar uma ocorrencia de caracter
echo '<br>';
echo strstr("image.jpeg", "."); // .jpeg
echo '<br>';
echo strchr("image.png", "."); // .png
//substituir caracteres
echo '<br>';
echo str_replace("A", "x", "batata"); // batata
echo '<br>';
echo str_ireplace("A", "x", "batata"); // bxtxtx
REGRAS NOMES VARIÁVEIS
- VARIÁVEIS COMEÇAM COM: $;
- NOMES PODEM INICIAR COM UMA LETRA OU _(UNDERLINE);
- EXISTE DIFERENÇAS ENTRE MAIÚSCULAS E MINÚSCULAS (CASE SENSITIVE);
<?php
//O operador de atribuição: =
$nome = 'JOSE MALCHER';
$anos = 38;
echo $nome . ' têm ' . $anos . ' anos.'; // JOSE MALCHER têm 30 anos.
<?php
//O operador de atribuição: =
$nome = 'Malcher';
$anos = 38;
//usando aspas simples
echo '$nome têm $anos anos'; // $nome têm $anos anos
echo '<br>';
//usando aspas duplas
echo "{$nome}'s têm $anos anos"; // Nandersons têm 30 anos
<?php
$nome = 'João';
$cargo = 'Desenvolvedor';
/*
HEREDOC: Permite uma escrita com mais
liberdade e interpreta códigos dinâmicos
no texto.
*/
echo <<<HEREDOC
Olá sou $nome, atuo como $cargo. <br>
HEREDOC;
// Olá sou João, atuo como Desenvolvedor.
echo <<<'NOWDOC'
Olá sou $nome, atuo como $cargo. <br>
NOWDOC;
// Olá sou $nome, atuo como $cargo.
<?php
//O PHP diferencia escritas de variáveis
//maiusculas e minusculas em seus nomes.
$idade = 30;
$Idade = 40;
$IDADE = 50;
echo $idade; // 30
echo '<br>';
echo $Idade; // 40
echo '<br>';
echo $IDADE; // 50
<?php
//Definindo constante
define('LINK_SITE', 'http://codeexperts.com.br');
echo LINK_SITE; // http://codeexperts.com.br
echo '<br>';
echo '<br>';
//Algumas constantes do PHP
echo 'Constante PHP Versão:' . PHP_VERSION; // Constante PHP Versão:8.3.2
echo '<br>';
echo 'Meu sistema é ' . PHP_OS; // Meu sistema é Linux
echo '<br>';
echo '<br>';
echo 'Estamos na pasta: ' . __DIR__;
// Estamos na pasta: /var/www/html/php-basico
echo '<br>';
echo '<br>';
echo 'Estamos na pasta: ' . __FILE__;
// Estamos na pasta: /var/www/html/php-basico/constantes.php
<?php
//php entende o tipo como string pelo valor passado
$nome = 'José';
echo gettype($nome); // string
echo '<br>';
$nome = (string) 10;
echo gettype($nome); // string
//echo $nome; //um valor string na variável nome
<?php
$num1 = 10;
$num2 = 20;
//Adição: +
echo $num1 + $num2;
echo '<br>';
//Subtração: -
echo $num1 - $num2;
echo '<br>';
//Multiplicação: *
echo $num1 * $num2;
echo '<br>';
//Divisão: /
echo $num1 / $num2;
echo '<br>';
//Módulo: % (Resto da Divisão)
echo $num1 % $num2;
echo '<br>';
echo 3 ** 4; //3 * 3 * 3 * 3 = 81
echo '<br>';
//Precência de operadores
echo 10 + 2 * 5; // 20
<?php
$num1 = "30";
$num2 = 30;
//Igualdade: == ou ===
print $num1 == $num2; //Compara valor
print "<br>";
print $num1 === $num2;//Compara valor e tipo
$num1 = "20";
//Operadores de Diferença
print $num1 != $num2; //Diferença Valor
print "<br>";
print $num1 <> $num2; //Diferença Valor
print "<br>";
//Operador de não indentico: Tipo e Valor
print $num1 !== $num2;
//Operadores de Comparação Maior ou Maior Igual:
print '<br>';
$num1 = 10;
$num2 = 10;
print $num1 . ' não é maior que ' . $num2;
print '<br>';
print $num1 > $num2;
print '<br>';
print $num1 >= $num2;
//Menor ou Igual
$num1 = 30;
$num2 = 30;
print '<br>';
print $num1 < $num2; //verdeiro
print '<br>';
//10 não é igual a 30 mas continua sendo menor que 30
print $num1 <= $num2;
//Uso do Operador de Comparação Spaceship: <=>
$num1 = 2;
$num2 = 1;
print '<br>';
print 'Uso do Spaceship Operator';
print '<br>';
print $num1 <=> $num2; //1
print '<br>';
print $num2 <=> $num1; // -1
print '<br>';
print $num2 <=> $num2; // 0
<?php
$num = 10;
$num += 5; //$num = $num + 5;
echo $num; // 15
echo '<br>';
$num = 10;
$num -= 5; //$num = $num - 5;
echo $num; // 5
echo '<br>';
$num = 10;
$num *= 5; //$num = $num * 5;
echo $num; // 50
echo '<br>';
$num = 10;
$num /= 5; //$num = $num / 5;
echo $num; // 2
echo '<br>';
$nome = "João";
$nome .= " Castro"; //$nome . " Castro";
echo $nome; // João Castro
<?php
// OR ou || e XOR
//O ou lógico (OR ou ||) retorna verdadeiro
//se um ou ambos os lados retornarem verdadeiro
echo true || true || true; // 1
echo '<br>';
//Um lado ou outro podem retornar verdadeiro
//mas não ambos.
echo true XOR false;
//E lógico: AND ou &&
echo '<br>';
//Todos os testes devem ser verdadeiros
//Para que o E lógico retorne verdadeiro
echo true AND true && true;
//Negação
echo '<br>';
// negando um verdadeiro temos false
// negando um falso, temos verdadeiro,
// negação com negação retorna verdadeiro
echo !true;
<?php
$nome = '';
$email = '';
/*
Quero validar que todos os
campos(aqui representados por variáveis)
sejam preenchidos...
*/
echo $nome == '' || $email == ''; // Verdadeiro
//Se o usuário tem a idade esperada pelo sistema...
$idade = 30;
$idadeUsuario = 21;
echo "<br>";
/**
* Se o usuário não colocar uma idade esperada,
* que é 30, a comparação retorna false, quando
* eu nego essse resultado, com !, eu obtenho
* uma comprovação do resultado da comparação.
*
*/
echo !($idade == $idadeUsuario);
/*
Verificar se o usuário tem uma idade entre
um espaço ou range interno do sistema.
Ex.: Ter entre 21 e 30 anos.
*/
echo '<br>';
$idadeMinima = 21;
$idadeMaxima = 30;
$idadeUsuario = 31;
echo $idadeUsuario >= $idadeMinima
&& $idadeUsuario <= $idadeMaxima;
<?php
$num = 1;
//$num = $num + 1;
echo $num++;
echo '<br>';
echo $num;
echo '<br>';
echo ++$num; //$num + 1 : 3
echo '<br>';
echo $num; // 3
//$num = $num - 1;
echo '<br>';
echo $num--; //3
echo '<br>';
echo $num; //2
echo '<br>';
echo --$num; // 1
echo '<br>';
echo $num; //1
<?php
//Sintaxe básica de condicionais...
if (false) {
echo "A condição foi satisfeita...";
} else {
echo "A condição não foi satisfeita...";
}
//Sintaxe alternativa...
if (false) :
echo "A condição foi satisfeita...";
else :
echo "A condição não foi satisfeita...";
endif;
<?php
$countString = strlen('Carlos'); //6
if ($countString == 5) {
echo "String possui 5 caracteres...";
} else if ($countString == 6) {
echo "String possui 6 caracteres...";
} else {
echo "A string não possui cinco caracteres...";
}
if ($countString == 5):
echo "String possui 5 caracteres...";
elseif ($countString == 6):
echo "String possui 6 caracteres...";
else:
echo "A string não possui cinco caracteres...";
endif;
<?php
$fruta = "manga";
switch ($fruta) {
//Colocar os testes a serem executados...
case "maçã":
echo "A fruta recebida é maçã!";
break;
case "laranja":
echo "A fruta recebida é laranja!";
break;
case "uva":
echo "A fruta recebida é uva!";
break;
default:
echo "A fruta não é servida aqui...";
}
<?php
$num = 20;
echo $num == 10 ? "Sim, é igual a 10"
: "Não é igual a 10";
echo '<br>';
$valorRecebido = $num == 20 ? "O valor recebido é 20"
: "O valor não é 20";
echo $valorRecebido;
echo '<br>';
$quantidade = 0;
$quantidadeRecebida = $quantidade ?: -1;
echo $quantidadeRecebida;
<?php
$idadeMinima = 21;
$idadeMaxima = 30;
$idadeUsuario = 31;
if($idadeUsuario >= $idadeMinima && $idadeUsuario <= $idadeMaxima)
echo "Você possui a idade esperada!";
<?php
//Escrita padrão de arrays
$listaFrutas = array('laranja', 'maçã', 'uva');
//Escrita Reduzida: short-syntax ou sintaxe reduzida
//Está disponivel desde php 5.4+
//$listaFrutas = ['laranja', 'maçã', 'uva'];
//Acessando Indicies do array
echo $listaFrutas[0];
echo '<br>';
echo $listaFrutas[1];
echo '<br>';
echo $listaFrutas[2];
echo '<br>';
//Visualizando estrutura do array
print_r($listaFrutas);
echo '<hr>';
//Visualizando estrutura do array com mais informações
var_dump($listaFrutas);
<?php
$usuario = [
'nome' => 'José Malcher JR',
'email' => '[email protected]',
'idade' => 38,
'altura' => 1.73,
'brasileiro' => true
];
echo $usuario['nome'] . ' com o e-mail ' . $usuario['email']
. ' têm a idade de ' . $usuario['idade'];
<?php
$usuarios = [
[
'nome' => 'Usuário 1',
'email' => '[email protected]',
'endereco' => [
'cep' => '65000-000'
]
],
[
'nome' => 'Usuário 2',
'email' => '[email protected]',
'endereco' => [
'cep' => '68000-000'
]
]
];
/**
* [
* 0 => array: array-associativo(
* 'nome: string',
* 'email: string',
* 'endereco': array-associativo(cep)),
*
* 1 => array: array-associativo(
* 'nome: string',
* 'email: string',
* 'endereco': array-associativo(cep))
* ]
*/
// echo '<pre>';
//var_dump($usuarios);
echo '<br>';
echo $usuarios[0]['nome'] . ', Email : ' . $usuarios[0]['email'];
echo '<br>';
echo 'Endereço CEP: ' . $usuarios[0]['endereco']['cep'];
echo '<hr>';
echo '<br>';
echo $usuarios[1]['nome'] . ', Email : ' . $usuarios[1]['email'];
echo '<br>';
echo 'Endereço CEP: ' . $usuarios[1]['endereco']['cep'];
<?php
$listaFrutas = ['maçã', 'goiaba', 'uva'];
//Contar o tamanho do array...
echo count($listaFrutas);
echo '<br>';
echo sizeof($listaFrutas); // Alias ou apelido para count...
//Verificar se o array tem um elemento...
//O in_array vai retornar true se o item
//buscado existe no array do segundo parâmetro
echo '<br>';
$frutaEstaNoArray = in_array('goiaba', $listaFrutas);
echo $frutaEstaNoArray ? 'Sim está na cesta de frutas'
: 'Não está na cesta de frutas!';
//Posso adicionar items a um array existente...
print'<hr>';
$carrinho = [
'Item: Mouse'
];
print_r($carrinho);
array_push($carrinho, 'Item: Teclado');
print '<hr>';
print_r($carrinho);
//Somar itens de um array
$precos = [19.99, 20.99, 2.99, 10, 0.50];
print '<hr>';
echo 'Resultado da soma é: ' . array_sum($precos);
<?php
//Array da esquerda é adicionado ao da direita
// na soma, tal qual uma junção e se existirem
//chaves identificas, as chaves do array a direita serão
//ignoradas...
$listaFrutasUm = ['maçã'];
$listaFrutasDois = ['laranja', 'banana', 'uva'];
//Somar dois arrays com o operador: +
$listaFrutas = $listaFrutasUm + $listaFrutasDois;
print_r($listaFrutas); // Array ( [0] => maçã [1] => banana [2] => uva )
//Comparando arrays
$listaFrutasUm = ['laranja', 'banana', 'uva'];
$listaFrutasDois = [2 => 'uva', 1 => 'banana', 0 => 'laranja'];
//== Compara os indicies e os valores
var_dump($listaFrutasUm == $listaFrutasDois); //true
/*
=== Compara os indicies, valores e se os indicies
estão na mesma ordem
*/
// var_dump($listaFrutasUm === $listaFrutasDois); //false
<?php
$listaFrutas = ['uva', 'banana', 'laranja', 'maçã', 'goiaba'];
//Escrita padrão...
for ($i = 0; $i < count($listaFrutas); $i++) {
echo $listaFrutas[$i] . '<br>';
}
/*
uva
banana
laranja
maçã
goiaba
*/
echo '<br>';
//Escrita alternativa...
for ($i = 0; $i < count($listaFrutas); $i++):
echo $listaFrutas[$i] . '<br>';
endfor;
/*
uva
banana
laranja
maçã
goiaba
*/
<?php
$listaFrutas = ['uva', 'banana', 'laranja', 'maçã', 'goiaba'];
$i = 0;
//Escrita padrão...
while ($i < count($listaFrutas)) {
echo $listaFrutas[$i] . '<br>';
$i++;
}
echo '<hr>';
$i = 0;
//Escrita alternativa...
while ($i < count($listaFrutas)):
echo $listaFrutas[$i] . '<br>';
$i++;
endwhile;
<?php
$listaFrutas = ['uva', 'banana', 'laranja', 'maçã', 'goiaba'];
$i = 0;
do{
echo $listaFrutas[$i] . '<br>';
$i++;
} while($i < count($listaFrutas));
<?php
//$numeros = range(0, 10);
//echo '<pre>';
//var_dump($numeros);
//foreach($numeros as $numero) {
// echo $numero . '<br>';
//}
$listaFrutas = ['uva', 'banana', 'laranja', 'maçã', 'goiaba'];
foreach($listaFrutas as $i => $fruta) {
print $i . ' - ' . $fruta . '<br>';
}
<?php
$usuarios = [
[
'nome' => 'Usuário 1',
'email' => '[email protected]',
'endereco' => [
'cep' => '65000-000'
]
],
[
'nome' => 'Usuário 2',
'email' => '[email protected]',
'endereco' => [
'cep' => '68000-000'
]
]
];
//Lê estes usuários com for.
$mensagem = '';
for($i = 0; $i < count($usuarios); $i++) {
$mensagem .= $usuarios[$i]['nome'];
$mensagem .= ', têm o e-mail ' . $usuarios[$i]['email'];
$mensagem .= '. Possui o CEP.: ' . $usuarios[$i]['endereco']['cep'];
$mensagem .= '<hr>'; //0, 1
}
echo $mensagem;
echo '<br>';
$mensagem = '';
foreach($usuarios as $usuario) {
$mensagem .= $usuario['nome'];
$mensagem .= ', têm o e-mail ' . $usuario['email'];
$mensagem .= '. Possui o CEP.: ' . $usuario['endereco']['cep'];
$mensagem .= '<hr>'; //0, 1
}
echo $mensagem;