En la siguiente clase vamos a añadir un constructor que nos obligue a poner el nombre, el dni, pero que el sueldo sea opcional (lo podemos pasar o no) y que si no lo pasamos por defecto valga 1000:
class Empleado { public $nombre; public $dni; public $sueldo; function verEmpleado() { return $this->nombre . " - " . $this->dni . " - " . $this->sueldo; } function sueldoNeto() { return $this->sueldo * 0.85; } }
Solución:
class Empleado { public $nombre; public $dni; public $sueldo; function __construct($nombre, $dni, $sueldo = 1000) { if (empty($nombre)){ throw new Exception("El nombre no puede estar vacío"); } if(!$this->validar_dni($dni)){ throw new Exception("DNI no válido"); } if ($sueldo<900){ throw new Exception("El sueldo no puede ser menor que el interprofesional"); } $this->nombre = $nombre; $this->dni = $dni; $this->sueldo = $sueldo; } function verEmpleado() { return $this->nombre . " - " . $this->dni . " - " . $this->sueldo; } function sueldoNeto() { return $this->sueldo * 0.85; } function validar_dni($dni) { $letra = substr($dni, -1); $numeros = substr($dni, 0, -1); if (substr("TRWAGMYFPDXBNJZSQVHLCKE", $numeros % 23, 1) == $letra && strlen($letra) == 1 && strlen($numeros) == 8) { return true; } else { return false; } } }