Cómo aprobar una entrevista de PHP: preguntas y respuestas principales

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción

Una entrevista para el puesto de desarrollador PHP no solo es una prueba de sintaxis del lenguaje, sino también una evaluación de la comprensión de arquitectura, seguridad y enfoques modernos. Muchos candidatos se pierden en preguntas básicas porque no se preparan de manera sistemática. En este artículo analizaremos las principales preguntas que suelen hacer en las entrevistas de PHP, con ejemplos de código y explicaciones. El material será útil tanto para principiantes como para desarrolladores experimentados que deseen refrescar sus conocimientos.



Tipos de datos y conversión de tipos



¿Qué tipos de datos existen en PHP?

PHP soporta 8 tipos de datos principales, divididos en tres grupos:

  • Escalares: bool, int, float, string.
  • Compuestos: array, object, callable, iterable.
  • Especiales: resource, null.

Ejemplo de verificación de tipo:

$value = "123";if (is_numeric($value)) {    $intValue = (int) $value; // conversión a int    var_dump($intValue); // int(123)}


¿Cuál es la diferencia entre == y ===?

El operador == compara valores después de la conversión de tipos, mientras que === lo hace sin conversión (comparación estricta). Esta es una de las trampas más comunes:

var_dump(0 == "0");   // bool(true)var_dump(0 === "0");  // bool(false)


POO en PHP: herencia, interfaces y traits



¿Qué son los traits y para qué sirven?

Los traits son un mecanismo de reutilización de código en PHP que resuelve el problema de la herencia única. Un trait no se puede instanciar, pero se puede incluir en una clase mediante use:

trait Logger {    public function log($message) {        echo "[LOG]: $message";    }}

class User { use Logger;}

$user = new User();$user->log("Usuario creado");


¿Cuál es la diferencia entre una clase abstracta y una interfaz?

  • Clase abstracta puede contener implementación de métodos y propiedades. Se hereda mediante extends.
  • Interfaz solo define las firmas de los métodos (sin implementación). Una clase puede implementar varias interfaces mediante implements.
interface CanFly {    public function fly();}

abstract class Bird { abstract public function sound(); public function eat() { echo "Come grano"; }}

class Eagle extends Bird implements CanFly { public function sound() { echo "Grito"; } public function fly() { echo "Vuela"; }}


Trabajo con bases de datos y PDO



¿Qué es PDO y por qué se usa?

PDO (PHP Data Objects) es una extensión para trabajar con bases de datos que proporciona una interfaz unificada para diferentes SGBD (MySQL, PostgreSQL, SQLite, etc.). La principal ventaja es la protección contra inyecciones SQL mediante consultas preparadas:

$pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');$stmt = $pdo->prepare('SELECT * FROM users WHERE email = :email');$stmt->execute([':email' => 'user@example.com']);$user = $stmt->fetch(PDO::FETCH_ASSOC);


¿Cómo manejar errores en PDO?

La mejor práctica es cambiar PDO al modo de excepciones:

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);try {    $pdo->exec("INSERT INTO users (name) VALUES ('John')");} catch (PDOException $e) {    echo "Error: " . $e->getMessage();}


Seguridad y vulnerabilidades comunes



¿Cómo proteger una aplicación contra XSS e inyecciones SQL?

En una entrevista es importante mostrar comprensión no solo de la teoría, sino también de las medidas prácticas:

  • Inyecciones SQL: use PDO con consultas preparadas (ver ejemplo anterior).

Blogs

Book Recommendations