Pues no hay "problema"
..... pues eso se maneja a nivel de instancias (objetos) asi que cada instancia tiene su propio "estado interno"
Código PHP:
Ver original<?php
Class Problema
{
// defino los estados explitamente como constantes:
const deleted=-1;
const pending= 0;
const soluto = 1;
const paused = 2;
private $estado = self::pending;
private $nombre = null;
public function __construct ($nombre_problema){
$this->nombre = $nombre_problema;
// ....
return $this;
}
public function setEstado($estado)
{
$this->estado=$estado;
return $this;
}
public function getEstado()
{
return $this->estado;
}
// otros metodos
}
$p1 = (new Problema('casarme'))->setEstado(-1);
$p2 = (new Problema('mantener hipoteca'))->setEstado(2);
echo "Estado de Problema #1 : {$p1->getEstado()} <br/>";
echo "Estado de Problema #2 : {$p2->getEstado()}";
Te aconsejo que en el setter de estado agregues un chequeo de que se encuentre entre los estados posibles, en este caso en el rango de -1 a 2 y sino cumple generes una
InvalidArgumentException
Otra cosa: si tu extienderas la clase Problema... para sus hijos es la misma cosa... (aclaro porque no se tu que entiendes)