Prueba de conocimiento UT 03¶
Parte 1: Preguntas tipo test¶
-
¿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;
- a.
-
¿Qué palabra clave se utiliza para definir una constante en una clase?
- a.
define - b.
const - c.
static - d.
fixed
- a.
-
¿Qué símbolo se utiliza para indicar que una función puede devolver
null?- a.
@ - b.
! - c.
? - d.
#
- a.
-
¿Qué método especial se usa para inicializar un objeto en PHP?
- a.
__init__() - b.
__start() - c.
constructor() - d.
__construct()
- a.
-
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
- a. Usando el operador
-
¿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
- a.
-
¿Qué método devuelve el nombre de la clase de un objeto?
- a.
get_class() - b.
class_get() - c.
get_classname() - d.
object_class()
- a.
-
¿Qué operador se utiliza para comprobar si un objeto pertenece a una clase?
- a.
== - b.
instanceof - c.
implements - d.
as
- a.
-
¿Qué palabra clave se utiliza para heredar una clase en PHP?
- a.
inherit - b.
extends - c.
from - d.
super
- a.
-
¿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()
- a.
-
¿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
-
¿Qué palabra clave impide que una clase sea heredada?
- a.
block - b.
private - c.
sealed - d.
final
- a.
-
¿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
-
¿Qué operador se utiliza para implementar múltiples interfaces?
- a.
: - b.
use - c.
extends - d.
implements
- a.
-
¿Qué método mágico convierte un objeto en cadena?
- a.
__string() - b.
toString() - c.
__toString() - d.
__convert()
- a.
-
¿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()
- a.
-
¿Cómo se lanza una excepción personalizada?
- a.
throw MiException(); - b.
throw new MiException(); - c.
raise MiException(); - d.
throw_exception(MiException);
- a.
-
¿Cuál de las siguientes excepciones forma parte de la SPL?
- a.
NullException - b.
OutOfRangeException - c.
ObjectNotFoundException - d.
EmptyClassException
- a.
-
¿Cuál es el tipo más genérico para capturar errores y excepciones?
- a.
Object - b.
Exception - c.
Error - d.
Throwable
- a.
-
¿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
- a. Se definen con
Parte 2: Ejercicio práctico¶
- Crea una clase
Personaque contenganombre,apellidosyedad. - Crea una clase
Empleadoque herede dePersonay contengasueldoy teléfonos. -
Implementa
toHtml()en ambas clases:- En
Empleado, si el objeto recibido como parámetro es una instancia deEmpleado, accede a todos sus métodos y propiedades.
- En
-
Implementa
__toString()en ambas clases. - 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.