Este documento consolida e detalha todos os tópicos, conceitos, armadilhas e exemplos práticos que estudamos para a sua preparação técnica para a vaga de desenvolvedor PHP. Utilize este guia aprofundado como revisão final antes do processo seletivo.
O desenvolvimento backend exige lógica afiada para manipulação de estruturas de dados e controle de fluxo de dados no servidor.
-
Arrays Associativos:
-
O que é: Em vez de usar índices numéricos tradicionais (
0, 1, 2), os arrays associativos utilizam chaves em formato de texto (string) para mapear valores. -
Exemplo prático:
$usuario = ['nome' => 'Carlos', 'cargo' => 'Analista'];. É o formato padrão em que o PHP recebe dados de formulários ou bancos de dados.
-
O que é: Em vez de usar índices numéricos tradicionais (
-
Laços de Repetição (
foreach):- O que é: Uma estrutura de controle feita especificamente para varrer coleções de dados (como arrays e listas de registros) de ponta a ponta sem estourar a memória ou exigir contadores manuais complexos.
-
Condicionais e Operadores Lógicos:
-
Estrutura: Uso de
if,else,elseifpara ramificar o comportamento do código dependendo de regras de negócio (ex: liberar acesso apenas se a idade for$\ge 18$ ). -
Operadores lógicos compostos: Uso de
&&(E lógico) ou||(OU lógico) para combinar múltiplas checagens em uma única linha de código.
-
Estrutura: Uso de
-
Contadores e Acumuladores:
- O que é: Variáveis de controle criadas para somar valores iterativamente (acumuladores) ou registrar a quantidade de vezes que uma condição específica aconteceu dentro de um loop (contadores, como contar quantos chamados de suporte estão abertos).
-
Interrupção de Fluxo (
break):- O que é: Comando utilizado dentro de laços de repetição para interromper o processamento imediatamente assim que o objetivo for alcançado, economizando processamento do servidor.
Funções são blocos de código nomeados, isolados e reutilizáveis que realizam uma tarefa específica.
- Estrutura Básica:
- Recebem dados de entrada chamados parâmetros (ex:
function calcularImposto($valor)), executam regras internamente e devolvem o resultado para o programa principal usando a palavra reservadareturn.
- Recebem dados de entrada chamados parâmetros (ex:
- Padrão Profissional (Separação de Responsabilidades):
- Funções de validação ou cálculo lógico não devem imprimir nada na tela com
echo. Elas devem apenas processar e retornar dados (true,false, valores numéricos ou strings), deixando a responsabilidade de exibição visual estritamente para quem chamou a função.
- Funções de validação ou cálculo lógico não devem imprimir nada na tela com
Estas são perguntas recorrentes em processos seletivos para testar o nível de conhecimento aprofundado e a atenção aos detalhes na linguagem.
$a = [1, 2, 3];
foreach ($a as &$v) {}
foreach ($a as $v) {}
print_r($a); // Resultado: [1, 2, 2]-
Explicação profunda: O primeiro loop utiliza o e comercial (
&$v), o que instrui o PHP a não criar uma cópia do valor, mas sim a colar a variável$vdiretamente no endereço de memória do array. Quando o primeiro loop termina, a variável$vcontinua atrelada fisicamente ao último elemento do array ($a[2]). - No segundo loop, a variável
$vé reutilizada sem o&. Em cada volta, o PHP joga o novo valor de cima para dentro de$v. Como$vainda aponta para o endereço de memória do último item do array original, o último item acaba sendo sobrescrito e duplicado indevidamente. -
Como evitar? Utilize sempre o comando
unset($v);logo após fechar um loop que utilize referências de memória.
- O PHP é uma linguagem fracamente tipada. Quando você utiliza o operador de igualdade dupla (
==), o PHP tenta converter os tipos de dados automaticamente nos bastidores antes de fazer a checagem (ex: comparar string com número, ou booleano com string vazia). Isso gera comportamentos imprevisíveis. - Regra de Ouro: Sempre utilize comparação estrita (
===), que valida simultaneamente o valor e o tipo estrito da variável (string,int,bool), evitando falhas graves de segurança e lógica.
- Chamar métodos sobrescritíveis (métodos que podem ser modificados por classes filhas) de dentro do construtor da classe pai (
__construct) é uma falha de arquitetura. Como o objeto ainda está em processo de construção na memória, as propriedades específicas da classe filha ainda não foram inicializadas, gerando erros crônicos ou estados inconsistentes.
A POO é o paradigma dominante nos sistemas modernos e frameworks atuais em PHP (como o Laravel).
-
Classe vs Objeto:
- Classe: É a planta baixa, o molde conceitual que define quais características e comportamentos os itens terão.
- Objeto: É a instância concreta criada a partir da classe (você pode gerar múltiplos objetos distintos utilizando o mesmo molde).
-
Atributos e Métodos:
-
Atributos: São as variáveis que guardam as características/estado do objeto (ex:
$titular,$saldo). -
Métodos: São as funções internas que ditam os comportamentos e ações que o objeto pode realizar (ex:
depositar(),sacar()).
-
Atributos: São as variáveis que guardam as características/estado do objeto (ex:
-
O Construtor (
__construct):- Um método mágico executado de forma totalmente automática no exato milissegundo em que você instancia o objeto usando a palavra
new. É usado para injetar os dados iniciais essenciais da classe.
- Um método mágico executado de forma totalmente automática no exato milissegundo em que você instancia o objeto usando a palavra
-
O Ponteiro (
$this):- Uma referência interna e obrigatória que serve para o objeto apontar para si mesmo, permitindo acessar seus próprios atributos e métodos de dentro da classe.
class ContaBancaria {
public string $titular;
public float $saldo;
public function __construct(string $titularRecebido, float $saldoInicial = 0) {
$this->titular = $titularRecebido;
$this->saldo = $saldoInicial;
}
public function consultarSaldo(): string {
return "O saldo atual de {$this->titular} é R$ {$this->saldo}.";
}
public function depositar(float $valor): void {
$this->saldo += $valor;
}
}- O que é o PHP?
- Uma linguagem voltada puramente para o backend e executada do lado do servidor (server-side via Apache ou Nginx). É ela que processa requisições, faz regras de negócio complexas, conecta-se com bancos de dados relacionais e devolve a resposta final processada para o navegador.
- Onde o PHP é amplamente utilizado?
- Em softwares corporativos, painéis administrativos internos, ERPs, sistemas legados de grandes empresas, plataformas de e-commerce e no ecossistema do WordPress (que movimenta mais de 40% de toda a internet), além de frameworks modernos altamente valorizados como o Laravel.
- Integração com outras linguagens (Ex: Python):
- Linguagens server-side diferentes não rodam misturadas no mesmo arquivo, mas conversam perfeitamente através de APIs REST baseadas em JSON ou chamadas controladas de sistema. Isso permite que um sistema em PHP delegue tarefas pesadas de inteligência artificial ou automação para scripts em Python de forma limpa e profissional.