Entrevista de PHP: não tenha medo, prepare-se
\n\nA entrevista para a posição de desenvolvedor PHP não é um exame de perguntas e respostas, mas um diálogo. Porém, um diálogo em que se espera de você não apenas "eu sei PHP", mas a compreensão de como a linguagem funciona internamente. A preparação para a entrevista de PHP não é decorar definições, mas analisar casos reais.
\n\nNeste artigo, não vamos listar cem perguntas. Em vez disso, vou mostrar a você um modelo de pensamento: como responder perguntas, como escrever código e no que prestar atenção para que o entrevistador diga "uau". Vamos lá.
\n\n1. Fundamentos do PHP: o que você precisa saber obrigatoriamente
\n\nVamos começar pelo básico. Mesmo que você esteja concorrendo a uma vaga Sênior, perguntas sobre fundamentos podem surgir. Aqui estão três pilares que sustentam a entrevista de PHP:
\n\n- \n
- Tipos de dados e coerção de tipos — como funciona
==vs===, o que éstrict_types. \n - Arrays superglobais —
$_GET,$_POST,$_SERVER,$_SESSION. \n - Trabalho com arrays —
array_map,array_filter,array_reduce. \n
Exemplo de pergunta: "O que o código exibirá?"
\n\n<?php\n$a = '5';\n$b = 5;\nvar_dump($a == $b); // bool(true) — comparação não estrita\nvar_dump($a === $b); // bool(false) — comparação estrita\n?>\n\nLembre-se: a entrevista de PHP junior muitas vezes se baseia exatamente nessas armadilhas. Não caia nelas.
\n\n2. POO em PHP: não apenas "classe e objeto"
\n\nPerguntas sobre PHP em entrevistas sempre incluem POO. Mas em vez de listar os três pilares (encapsulamento, herança, polimorfismo), mostre como você os utiliza.
\n\nExemplo: perguntarão sobre interfaces e classes abstratas. Não diga "interface é um contrato". É melhor apresentar código:
\n\n<?php\ninterface PaymentGateway {\n public function pay(float $amount): bool;\n}\n\nclass StripeGateway implements PaymentGateway {\n public function pay(float $amount): bool {\n // lógica de pagamento via Stripe\n return true;\n }\n}\n\nclass PayPalGateway implements PaymentGateway {\n public function pay(float $amount): bool {\n // lógica de pagamento via PayPal\n return true;\n }\n}\n\nfunction processOrder(PaymentGateway $gateway, float $total) {\n if ($gateway->pay($total)) {\n echo "Pagamento realizado com sucesso";\n }\n}\n?>\n\nEssa resposta mostra que você entende o princípio da substituição de Liskov e sabe projetar sistemas flexíveis. Isso já dá +100 pontos na entrevista de PHP middle.
\n\n3. Trabalho com bancos de dados: SQL e PDO
\n\nNenhuma entrevista de PHP fica sem perguntas sobre MySQL. Lembre-se: nunca use funções mysql_* — elas foram removidas no PHP 7. Use PDO ou mysqli.
\n\nDesafio típico: "Escreva uma consulta segura ao banco de dados".
\n\n<?php\n$pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');\n$stmt = $pdo->prepare('SELECT * FROM users WHERE email = :email');\n$stmt->execute(['email' => $email]);\n$user = $stmt->fetch(PDO::FETCH_ASSOC);\n?>\n\nPor que isso é importante? Porque injeções SQL são o erro clássico de juniores. Mostre que você conhece prepared statements.
\n\nOutra pergunta frequente são os JOINs. Esteja preparado para explicar a diferença entre INNER, LEFT, RIGHT e FULL JOIN. E obrigatoriamente dê um exemplo de quando usar cada um.
\n\n4. Desafios típicos em entrevistas de PHP
\n\nDesafios PHP não são apenas teoria. Podem te pedir um live coding. Aqui estão três tipos de desafios que aparecem com frequência:
\n\n4.1. Desafio com arrays
\n"Escreva uma função que agrupe um array de objetos por chave