Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 具有私有属性的全局变量_Php_Oop_Variables - Fatal编程技术网

Php 具有私有属性的全局变量

Php 具有私有属性的全局变量,php,oop,variables,Php,Oop,Variables,我有以下课程: class validationHandler{ private $dataType; //set via constructor ... private $validation = null; private function requireValidation(){ if($this->validation == null){ $this->validation = loadDataFromJS

我有以下课程:

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文件加载数据

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

问题:是否有方法设置$validation global,以便每个对象访问相同的变量,但不丢失私有属性


(请注意,我有不同的验证文件和不同类型的对象。对象告诉_construct()中的validationHanlder它有哪种类型,以及应该加载哪种验证文件。因此我需要$validation作为数组。(没有在代码中编写它,因此可读性更强)

如果要使用创建变量,听起来像。

将验证提取到一个单独的类中。将该类的实例插入到所有需要此验证的对象中。