具有私有属性的全局变量

时间:2013-08-05 07:06:14

标签: php oop variables

我有以下课程:

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
    }
}

当一个对象需要验证某些数据时,它会生成一个新的验证对象并调用validate()。

第一次需要验证某些内容时,数据是从json文件加载的。

但是:有时我有几个需要相同验证文件的对象。此代码为每个Object加载文件。

问题:有没有办法设置$ validation global,这样每个对象都可以访问同一个变量,但不会丢失私有属性?

(注意我有不同的验证文件和不同类型的对象。一个对象告诉__construct()中的validationHanlder它有哪种类型,以及应该加载哪个验证文件。所以我需要$ validation成为一个数组。(没有在代码中写,所以它更具可读性)

1 个答案:

答案 0 :(得分:1)

您想使用static创建变量,听起来像是。