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
Persona
que contenganombre
,apellidos
yedad
. - Crea una clase
Empleado
que herede dePersona
y contengasueldo
y 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.