abstract class Module{
static $path;
protected $name;
function __construct($name,$path)
{
$this->name = $name;
self::$path=$path;
$this->start();
}
static function get_path(){return self::$path;}
abstract protected function start();
}
Его наследуют два другие класса: Class_One и Class_Two
Проблема с заданием значения статическому свойству path. Экземляры двух классов создаются друг за другом, и у обоих? при вызове Class_One::get_path(), получаю свойство path, указанное в последний раз.
Т.е.:
$one = new Class_One("1","m/1");
$two = new Class_Two("2","m/2");
при вызове Class_One::get_path() получу "m/2";
На сколько я понял, они оба изменяют свойство у абстрактного класса, а не у себя. Как же правильно сделать, чтобы не прописывать эти функции для каждого отдельно ?