在__construct中创建的PHP对象在同一个类的函数内不可访问

时间:2016-05-18 02:43:10

标签: php oop object model-view-controller

使用 MVC 模式开发的PHP网站。我想访问在类的所有函数中使用构造函数创建的对象。当我检查is_object它不在那里时,我再次创建对象。

当尝试模拟MVC模式时,其工作正常(以下代码)获得Object Accessible: $this->ldap Logged In!。但在我的实际网站中获得Non-Object: $this->ldap Logged In!

  

我可能犯的错误是什么?无论如何要找到什么   问题是什么?

class ldap{
    function ldap_userAuth(){
        return TRUE;
    }
}

class commonfunctions {
    private $ldap;
    public function __construct(){
        $this->ldap=new ldap();
    }
    function userLogin(){
        if(!is_object($this->ldap)){
            $this->ldap=new ldap();
            echo 'Non-Object: $this->ldap'.PHP_EOL;
        }
        else{ 
            echo 'Object Accessible: $this->ldap'.PHP_EOL; 
        }
        if($this->ldap->ldap_userAuth()){
            return TRUE;
        }
        else{ 
            return FALSE; 
        }
    }
}

class Model extends commonfunctions {
}

class Controller {
    public $model;

    public function __construct(){  
        $this->model = new Model(); 
    }

    public function invoke(){
        if($this->model->userLogin()){
            echo 'Logged In!'.PHP_EOL;
        }
        else{ 
            echo 'Logged Out!'.PHP_EOL; 
        }
    }
}

$controller = new Controller();
$controller->invoke();

注意: - 我的实际网站的上述顺序中包含了类。 上面的代码片段按预期工作,我只在实时网站上发布。

1 个答案:

答案 0 :(得分:0)

尝试调用excludedRegions类中父级的checkout scm: [ $class: 'GitSCM', branches: [[name: '*/master']], userRemoteConfigs: [[url: 'https://[path]/parent.git']], extensions: [[ $class: 'PathRestriction', excludedRegions: '', includedRegions: 'subA/.*' ]] ] 方法,如下所示:

__construct

确保正在调用构造函数。