Saltar a contenido

Prueba de conocimiento UT 03

Parte 1: Preguntas tipo test

  1. ¿Cuál es la forma correcta de declarar una propiedad privada en una clase PHP?

    • a. private = $nombre;
    • b. privado $nombre;
    • c. private $nombre;
    • d. priv $nombre;
  2. ¿Qué palabra clave se utiliza para definir una constante en una clase?

    • a. define
    • b. const
    • c. static
    • d. fixed
  3. ¿Qué símbolo se utiliza para indicar que una función puede devolver null?

    • a. @
    • b. !
    • c. ?
    • d. #
  4. ¿Qué método especial se usa para inicializar un objeto en PHP?

    • a. __init__()
    • b. __start()
    • c. constructor()
    • d. __construct()
  5. En PHP 8, ¿cómo se simplifica la definición del constructor y sus propiedades?

    • a. Usando el operador ->
    • b. Usando auto __construct()
    • c. Mediante promoción de propiedades del constructor
    • d. Utilizando variables globales
  6. ¿Cómo se accede a una propiedad estática dentro de su propia clase?

    • a. $this->propiedad
    • b. self::$propiedad
    • c. this::propiedad
    • d. parent::propiedad
  7. ¿Qué método devuelve el nombre de la clase de un objeto?

    • a. get_class()
    • b. class_get()
    • c. get_classname()
    • d. object_class()
  8. ¿Qué operador se utiliza para comprobar si un objeto pertenece a una clase?

    • a. ==
    • b. instanceof
    • c. implements
    • d. as
  9. ¿Qué palabra clave se utiliza para heredar una clase en PHP?

    • a. inherit
    • b. extends
    • c. from
    • d. super
  10. ¿Qué método se debe usar en una clase hija para llamar al constructor de su clase padre?

    • a. super()
    • b. this::__construct()
    • c. parent::__construct()
    • d. base::__construct()
  11. ¿Qué define una clase abstracta en PHP?

    • a. Una clase sin atributos
    • b. Una clase que no puede tener métodos
    • c. Una clase que no puede ser instanciada
    • d. Una clase con solo métodos estáticos
  12. ¿Qué palabra clave impide que una clase sea heredada?

    • a. block
    • b. private
    • c. sealed
    • d. final
  13. ¿Qué hace una interfaz en PHP?

    • a. Almacena datos globales
    • b. Permite heredar de múltiples clases
    • c. Define un conjunto de métodos obligatorios
    • d. Implementa clases automáticamente
  14. ¿Qué operador se utiliza para implementar múltiples interfaces?

    • a. :
    • b. use
    • c. extends
    • d. implements
  15. ¿Qué método mágico convierte un objeto en cadena?

    • a. __string()
    • b. toString()
    • c. __toString()
    • d. __convert()
  16. ¿Cuál es la función correcta para registrar el autoload de clases?

    • a. autoload_register()
    • b. load_classes()
    • c. spl_autoload_register()
    • d. include_autoload()
  17. ¿Cómo se lanza una excepción personalizada?

    • a. throw MiException();
    • b. throw new MiException();
    • c. raise MiException();
    • d. throw_exception(MiException);
  18. ¿Cuál de las siguientes excepciones forma parte de la SPL?

    • a. NullException
    • b. OutOfRangeException
    • c. ObjectNotFoundException
    • d. EmptyClassException
  19. ¿Cuál es el tipo más genérico para capturar errores y excepciones?

    • a. Object
    • b. Exception
    • c. Error
    • d. Throwable
  20. ¿Cuál de las siguientes afirmaciones sobre namespaces es verdadera?

    • a. Se definen con package
    • b. Sólo se pueden usar en PHP 7
    • c. Organizan clases en espacios lógicos
    • d. Se utilizan para declarar constantes globales

Parte 2: Ejercicio práctico

  1. Crea una clase Persona que contenga nombre, apellidos y edad.
  2. Crea una clase Empleado que herede de Persona y contenga sueldo y teléfonos.
  3. Implementa toHtml() en ambas clases:

    • En Empleado, si el objeto recibido como parámetro es una instancia de Empleado, accede a todos sus métodos y propiedades.
  4. Implementa __toString() en ambas clases.

  5. Crea una jerarquía de excepciones personalizada (una excepción padre y otra hija para empleados). Lanza una excepción si se crea un empleado menor de 18 años.