在PHP类内部用外部变量声明受保护的变量


Declare protected variable inside PHP class with variable from outside

我正在使用adLDAP插件(不是真的相关),并且有一个标准的PHP类。在这个类中有两个受保护的变量(admin user和admin password)。

我需要用parse_ini_file加载的.ini文件中的数据来声明这两个变量。我该怎么做呢?我不能让它工作。例子:

$ini_array = parse_ini_file("somefile");
// username comes like $ini_array["php_value ad.username"]
class someClass {
    protected $adminUSER = "";
    protected $adminPW = "";
}

这样使用setter:

class someClass
{
    protected $adminUSER = "";
    protected $adminPW = "";
    public function setAdminUser($adminUser)
    {
        $this->adminUSER = $adminUser ;
    }
    public function setAdminPw($adminPW)
    {
        $this->adminPW= $adminPW;
    }
}
$classInstance = new someClass();
$classInstance->setAdminUser('AdminUser');
$classInstance->setAdminPw('AdminPw');

如果你不能修改你的类,使用heritage:

class myClass extends someClass
{
    public function __construct($adminUser, $adminPW)
    {
        $this->adminUSER = $adminUser ;
        $this->adminPW= $adminPW;
    }
}
$myInstance = new myClass('UserAdmin', 'Password);

或者heritage和setter…或者直接继承并读取构造函数中的配置:

class myClass extends someClass
{
    public function __construct()
    {
        $ini_array = parse_ini_file("somefile");
        $this->adminUSER = $ini_array['adminUser'] ;
        $this->adminPW= $ini_array['adminPassword'];
    }
}
然后调用你的新类,它应该是自动初始化的:
$myInstance = new myClass();