首页 > 解决方案 > 在 PHP 中,如何在为类定义公共变量时使用变量作为 key=>value 对中的值?

问题描述

我正在尝试使用环境变量来设置我们的数据库机密。它们在一个类中定义。复制到这里。我正进入(状态:

解析错误:语法错误,意外“意外'$_SERVER'”

不允许使用变量。

有没有办法做到这一点,我错过了?

class DATABASE_CONFIG {
        public $default = array(
                'datasource' => 'Database/Mysql',
                'persistent' => false,
                'host' => $_SERVER['DB_DEFAULT_HOST'],
                'login' => $_SERVER['DB_DEFAULT_LOGIN'],
                'password' => $_SERVER['DB_DEFAULT_PASSWORD'],
                'database' => $_SERVER['DB_DEFAULT_DATABASE'],
                'prefix' => ''
                //'encoding' => 'utf8',
            );
  }

标签: phpcakephp

解决方案


我认为最好的方法是使用该__construct方法并像这样填充变量:

class DATABASE_CONFIG {
  public $default = [];
  public function __construct(){
      $this->default = array(
              'datasource' => 'Database/Mysql',
              'persistent' => false,
              'host' => $_SERVER['DB_DEFAULT_HOST'],
              'login' => $_SERVER['DB_DEFAULT_LOGIN'],
              'password' => $_SERVER['DB_DEFAULT_PASSWORD'],
              'database' => $_SERVER['DB_DEFAULT_DATABASE'],
              'prefix' => ''
              //'encoding' => 'utf8',
            );
    }
}

推荐阅读