2013-08-05 2 views
0

У меня есть следующий класс:Глобальных переменный с частным атрибутом

class validationHandler{ 
    private $dataType; //set via constructor ... 
    private $validation = null; 

    private function requireValidation(){ 
     if($this->validation == null){ 
       $this->validation = loadDataFromJSONfile($this->dataType); 
     } 
    } 

    public function validate($data){ 
     $this->requireValidation(); 
     //validate... the rules are in the $validation-variable 
    } 
} 

Когда объект должен проверить некоторые данные, это делает новую валидацию-объект и вызовов проверке().

Впервые что-то нужно проверить, данные загружаются из json-файла.

Но: Иногда у меня есть несколько объектов, которым нужен тот же файл проверки. И этот код загружает файл для каждого объекта.

Вопрос: Есть ли способ установить $ validation global, чтобы каждый объект обращался к одной и той же переменной, но без потери частной собственности?

(Обратите внимание, что у меня есть разные файлы проверки и различные объекты. Объекты сообщают validationHanlder в __construct(), которые он набирает, и какой файл проверки должен быть загружен. Поэтому мне нужно, чтобы $ validation была массив. (не писать в коде, так что это более читаемым)

+0

Извлечение проверки в отдельный класс. Вводят экземпляр этого класса во все объекты, которые нуждаются в этой проверке. – Gordon

ответ

1

Вы хотите создать переменную с помощью static, это звучит как.

Смежные вопросы