2013-08-05 82 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您的变量,这听起来像。