<?php
class Empleado {
private $nombre;
private $sueldo;
function __construct($nombre, $sueldo) {
$this->nombre = $nombre;
}
function paga() {
return $this->sueldo / 12;
}
public function __get($propiedad) {
if (property_exists($this, $propiedad)) {
return $this->$propiedad;
} else {
throw new Exception("No existe la propiedad");
}
}
public function __set($property, $value) {
if (property_exists($this, $property)) {
if ($property == "sueldo") {
if ($value > 600) {
$this->sueldo = $value;
} else {
throw new Exception("Sueldo debe ser > 600");
}
} elseif (!empty($value)) {
$this->$property = $value;
}
}
}
}
class comercial extends empleado {
private $comision = .1;
protected $ventas;
public function __construct($nombre, $sueldo, $ventas) {
parent::__construct($nombre, $sueldo);
$this->ventas = $ventas;
}
function paga() {
$p = parent::paga();
return $p + $this->ventas * $this->comision / 12;
}
}
index.php
$juan = new Empleado("Juan", 300);
$p=new comercial("Juasdan", 300,9000);
echo $p->nombre;
echo $p->paga();
try {
$juan->sueldo = 6000;
echo $juan->sueldo;
echo $juan->paga();
} catch (Exception $error) {
echo $error->getMessage();
}