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

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

Cómo pasar una entrevista de PHP: análisis de las preguntas principales



Una entrevista para el puesto de desarrollador PHP no solo es una prueba de sintaxis, sino también un examen de comprensión de arquitectura, seguridad y estándares modernos (PSR). En este artículo, hemos recopilado 10 preguntas clave que se hacen con mayor frecuencia en entrevistas para niveles Junior y Middle. Cada pregunta va acompañada de una explicación, un ejemplo de código y las trampas típicas.



1. ¿En qué se diferencia echo de print? ¿Y print_r de var_dump?

Esta es una pregunta básica que evalúa el conocimiento de las funciones de salida incorporadas.

  • echo — es una construcción del lenguaje, no devuelve un valor. Funciona más rápido que print.
  • print — también es una construcción, pero siempre devuelve 1. Se puede usar en expresiones.
  • print_r — muestra información legible para humanos sobre una variable (arrays, objetos). Devuelve una cadena si el segundo parámetro es true.
  • var_dump — muestra el tipo y el valor de la variable, incluida la longitud de la cadena. Es útil para la depuración.
<?php$arr = ['a' => 1, 'b' => 2];echo print_r($arr, true); // Devuelve una cadena, no la muestra inmediatamentevar_dump($arr);           // array(2) { ["a"]=> int(1) ["b"]=> int(2) }?>


2. ¿Qué es la autocarga de clases y cómo funciona con Composer?

La autocarga (autoloading) permite a PHP incluir clases automáticamente la primera vez que se accede a ellas, sin un require_once explícito.

  • Antes se usaba la función spl_autoload_register().
  • Ahora el estándar de facto es Composer y su cargador automático.
  • Composer admite PSR-4 (espacios de nombres) y PSR-0 (obsoleto).
// composer.json{    "autoload": {        "psr-4": {            "App\\\\": "src/"        }    }}

// Después de composer dump-autoload// Archivo src/User.php con namespace App;$user = new \\App\\User(); // Se cargará automáticamente


3. Diferencia entre include, require, include_once y require_once

Pregunta sobre la comprensión del trabajo con archivos externos y el manejo de errores.

  • include — emite un Warning si el archivo no se encuentra, el script continúa su ejecución.
  • require — emite un Fatal Error, el script se detiene.
  • *_once — comprueba si el archivo ya se ha incluido anteriormente y no lo vuelve a incluir.

Trampa: include en un bucle puede provocar una inclusión repetida y un error de redefinición de funciones si no se usa include_once.



4. ¿Cómo funciona PDO y por qué es mejor que las funciones mysql_*?

PDO (PHP Data Objects) es una interfaz para trabajar con bases de datos. Es obligatorio conocerlo para cualquier desarrollador PHP moderno.

  • Admite diferentes DBMS (MySQL, PostgreSQL, SQLite) — basta con cambiar el DSN.
  • Utiliza consultas preparadas (prepared statements), lo que protege contra inyecciones SQL.
  • Facilita el trabajo con transacciones y el manejo de errores mediante excepciones.
<?php$dsn = 'mysql:host=localhost;dbname=test;charset=utf8';$pdo = new PDO($dsn, 'user', 'pass', [    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);

$stmt = $pdo->prepare('SELECT * FROM users WHERE email = :email');$stmt->execute(['email' => $email]);$user = $stmt->fetch(PDO::FETCH_ASSOC);?>


5. ¿Qué son los métodos mágicos en PHP? Dé ejemplos

Los métodos mágicos comienzan con doble guion bajo (__) y se llaman automáticamente ante ciertas acciones con un objeto.

  • __construct() — se llama al crear un objeto.
  • __get() / __set() — se llaman al acceder o modificar propiedades inaccesibles.
  • __call() / __callStatic() — se llaman al invocar métodos inaccesibles.
  • __toString() — permite definir cómo reaccionar cuando un objeto se trata como una cadena.
  • __invoke() — se llama cuando un objeto se usa como función.
<?phpclass User {    private $data = [];

public function __get($name) { return $this->data[$name] ?? null; }

public function __set($name, $value) { $this->data[$name] = $value; }

public function __toString() { return $this->data['name'] ?? 'Unknown'; }}

$user = new User();$user->name = 'Alice';echo $user->name; // Aliceecho $user; // Alice?>

Blogs

Book Recommendations