¿Qué diferencia hay entre include y require en PHP?
include genera un warning si el archivo no existe y el script sigue ejecutándose; require genera un error fatal y detiene el script.
¿Qué hace include_once y require_once?
Evitan incluir el mismo archivo más de una vez en la ejecución para prevenir redefinición de clases o funciones.
¿Qué es un namespace en PHP?
Un espacio lógico que agrupa clases y funciones para evitar colisiones de nombres entre archivos o librerías.
¿Cómo se define y se usa un namespace?
Se usa con la palabra clave namespace al inicio del archivo y luego se importa con use al usarlo en otro archivo.
¿Qué es un trait en PHP?
Un mecanismo para reutilizar métodos en múltiples clases sin heredar directamente.
¿Cómo se define un trait?
Con la palabra clave trait seguida del nombre y luego se incluye en la clase con use.
¿Qué es una interfaz en PHP?
Un contrato que define los métodos que una clase debe implementar.
¿Cuál es la diferencia entre una clase abstracta y una interfaz?
Una clase abstracta puede tener implementación parcial y propiedades; una interfaz solo define métodos sin lógica.
¿Qué significa PSR en PHP?
PHP Standards Recommendations: un conjunto de estándares de codificación definidos por PHP-FIG.
¿Qué hace PSR-4?
Define el estándar de autoloading de clases basado en namespaces y estructura de carpetas.
¿Qué es una excepción en PHP?
Un tipo de error controlado que puede capturarse con try/catch para manejarlo sin detener el script.
¿Cómo lanzar una excepción personalizada?
Usando throw new Exception(‘mensaje’) dentro del código.
¿Cómo capturar excepciones?
Con un bloque try { … } catch (Exception $e) { … }.
¿Para qué sirve el bloque finally?
Para ejecutar código sin importar si hubo o no excepción.
¿Qué función se usa para registrar errores en un log?
error_log(“mensaje de error”).
¿Qué hace ini_set(‘display_errors’, 0)?
Oculta los errores en pantalla, útil para producción.
¿Cómo se pueden definir constantes en PHP?
Con define(‘NOMBRE’, valor) o usando const dentro de clases.
¿Qué diferencia hay entre == y ===?
== compara valores tras conversión de tipo; === compara valor y tipo estrictamente.
¿Cuál es la salida del siguiente código: $a="0";$b=0;if($a==$b)echo"1";if($a===$b)echo"2";?
Solo imprime “1” porque el primer if compara valores pero el segundo compara tipo y valor.
¿Qué hace isset()?
Verifica si una variable está definida y no es null.
¿Qué hace empty()?
Verifica si una variable está vacía (0, “”, null, false, [], etc).
¿Qué diferencia hay entre unset() y null?
unset elimina completamente la variable; asignar null solo borra su contenido.
¿Qué es una variable superglobal?
Variable disponible en todo el script como $_POST
¿Qué hace la función json_encode?
Convierte un arreglo o objeto PHP a formato JSON.