P
prepair.app
Comenzar entrevista →
EnglishУкраїнськаРусскийDeutsch
🐘

Preguntas de entrevista PHP

Las entrevistas de PHP cubren semántica del lenguaje, OOP, Laravel o Symfony, MySQL, y fundamentos de seguridad web. Aquí están las preguntas más comunes con respuestas modelo.

Junior · sin experiencia / menos de 1 añoMiddle · 2–4 años de experienciaSenior · 5+ años de experiencia

Qué preguntan

OOP y SOLID en PHP
Laravel / Symfony
MySQL y optimización de consultas
Composer y autoloading
Sesiones, cookies, seguridad
Estándares PSR

10 preguntas reales con respuestas

Cada pregunta viene con una respuesta modelo con la que puedes comparar la tuya.

1

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

Respuesta

== compara valores después de type juggling, mientras que === además requiere que los tipos coincidan. La comparación laxa produce sorpresas famosas: "abc" == 0 era true antes de PHP 8, y "1e2" == "100" sigue siendo true porque ambos parecen numéricos. La regla en código de producción es usar siempre === a menos que tengas una razón específica para no hacerlo.

2

¿Qué son los traits? ¿En qué se diferencian de la herencia y las interfaces?

Respuesta

Un trait es un bloque de métodos y propiedades que se puede componer dentro de una clase, sorteando la herencia simple de PHP. Una interfaz declara un contrato sin implementación; la herencia da una relación is-a con un solo padre; un trait da implementación reutilizable sin relación de tipo. Los conflictos entre traits deben resolverse explícitamente con insteadof o as.

3

Explica los principios SOLID con ejemplos en PHP.

Respuesta

Single Responsibility: una clase tiene una sola razón para cambiar, así que un controller no también construye PDFs. Open/Closed: extiende comportamiento a través de nuevas clases en vez de editar las existentes. Liskov: una subclase debe ser usable en cualquier lugar donde se use el padre. Interface Segregation: muchas interfaces pequeñas superan a una gorda. Dependency Inversion: depende de interfaces inyectadas en el constructor, no de clases concretas creadas con new.

4

¿Qué es el Dependency Injection Container en Laravel y cómo funciona?

Respuesta

El container resuelve las dependencias de clases automáticamente reflejando los type hints del constructor e instanciando recursivamente lo que se necesita. Vinculas interfaces a implementaciones concretas en un service provider, así que cambiar una implementación es un cambio de una línea. Los bindings singleton comparten una instancia por ciclo de vida del request, lo cual importa para servicios con estado como un connection pool.

5

¿Cómo te proteges contra SQL injection? ¿Qué son los prepared statements?

Respuesta

Un prepared statement envía la estructura SQL y los parámetros por separado, así que el input del usuario nunca se parsea como SQL y los errores de comillas no pueden convertirse en una inyección. En PHP eso significa PDO o mysqli con parámetros vinculados, o un ORM que lo hace por ti. La concatenación de strings en una consulta es la vulnerabilidad; las funciones de escape son un sustituto frágil porque dependen del charset y el contexto.

6

¿Qué es Eloquent ORM? Explica el problema N+1 y cómo resolverlo.

Respuesta

Eloquent es el ORM active-record de Laravel donde cada modelo mapea a una tabla y las relaciones se definen como métodos. N+1 pasa cuando haces loop sobre modelos y tocas una relación, disparando una consulta por fila. La solución es eager loading con with(), y puedes atraparlo en desarrollo habilitando Model::preventLazyLoading() para que un acceso lazy lance un error en vez de degradarse silenciosamente.

7

¿Qué es el middleware en Laravel? Da un ejemplo de uso.

Respuesta

El middleware envuelve el pipeline del request HTTP, permitiéndote correr código antes o después del controller — autenticación, rate limiting, headers CORS, logging. Cada middleware recibe el request y un closure $next, decide si lo pasa adelante, y puede modificar la respuesta al volver. Como se compone, las preocupaciones transversales se mantienen fuera de los controllers.

8

¿Cómo funciona el autoloading de clases vía Composer y PSR-4?

Respuesta

PSR-4 mapea un prefijo de namespace a un directorio, así que App\Services\Mailer resuelve a src/Services/Mailer.php. Composer genera un autoloader a partir del mapping en composer.json y lo registra con spl_autoload_register, así que las clases cargan en el primer uso en vez de ser requeridas manualmente. En producción corres composer dump-autoload --optimize para construir un mapa de clases estático y saltarte los lookups del filesystem.

9

¿Qué son XSS y CSRF? ¿Cómo proteges una aplicación PHP?

Respuesta

XSS inyecta script ejecutable en una página — se previene escapando toda la salida con htmlspecialchars o las dobles llaves de Blade, más una Content Security Policy. CSRF engaña a un navegador autenticado para que envíe un request que el usuario no pretendía — se previene con un token por sesión en cada formulario que cambia estado y cookies SameSite. La distinción clave es que XSS abusa de la confianza en el sitio, CSRF abusa de la confianza del sitio en el navegador.

10

¿Cuál es la diferencia entre include, require, include_once y require_once?

Respuesta

include emite un warning y continúa si el archivo falta; require lanza un error fatal y se detiene. Las variantes _once rastrean archivos ya cargados y saltan duplicados, lo que previene errores de redeclaración. En código moderno las cuatro son mayormente irrelevantes porque el autoloading de Composer maneja la carga de clases, y los includes explícitos quedan solo para archivos de config o plantillas.

🦎

Leer respuestas no es suficiente

En una entrevista real hablas bajo presión. Cam hace estas mismas preguntas, evalúa cada respuesta y muestra exactamente qué mejorar.

Practicar entrevista de PHP Backend →
Gratis · 3 entrevistas al mes

Vale la pena leer

Todos los artículos →

Otras especializaciones

🔍Manual QA🤖QA AutomationJava Backend🐍Python Backend🦫Go Backend🟢Node.js Backend💎Ruby on Rails🔷C++🟨JavaScript⚛️React Frontend💚Vue Frontend🅰️Angular FrontendNext.js🍏iOS (Swift)🟩Android (Kotlin)⚙️DevOps / SRE🗄️Data Engineer📈Business Analyst🎯Product Manager📋Project Manager🎨UI/UX Designer📣Marketing