function begin() {
foreach ($this->data as $key => $value) {
$this->$key();
}
}
Кроме этого, почему вы используете конструктор для выполнения операции?Сначала создайте объект и после инициализации вызывайте методы объекта, пока он больше не понадобится.Будет легче обрабатывать исключения и отлаживать приложение.
$obj= new Validation();
$obj->begin();
or in a single line:
(new Validation())->begin();
Примечание: второй метод доступен начиная с 5.4 (ссылка)
Кроме того, оннет необходимости вызывать деструктор из объекта-владельца (теперь вы вызываете деструктор в конструкторе !! ctor() -> $this->begin() -> $this->__destruct()
. Кто-то, использующий ваш объект снаружи, вызовет деструктор (неявным или явным образом).