使用外部变量在 PHP class 中声明受保护的变量

Declare protected variable inside PHP class with variable from outside

我正在使用 adLDAP 插件(不是很相关),并且有一个标准 PHP class。在这个 class 中有 2 个受保护的变量(管理员用户和管理员密码)。

我需要用我用 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 = "";
}

这样使用二传手:

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');

如果您无法修改 class,请使用继承:

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'];
    }
}

然后调用你的新 class,它应该被自动初始化:

$myInstance = new myClass();