在PHP中,如何使用变量作为key=>;中的值;为类定义公共变量时的值对?

在PHP中,如何使用变量作为key=>;中的值;为类定义公共变量时的值对?,php,cakephp,Php,Cakephp,我正在尝试使用环境变量来设置数据库机密。它们是在类中定义的。抄写在这里。我得到: 分析错误:语法错误,意外的“意外的“$\u服务器” 不允许使用变量 有没有一种方法是我所缺少的 class DATABASE_CONFIG { public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false,

我正在尝试使用环境变量来设置数据库机密。它们是在类中定义的。抄写在这里。我得到:

分析错误:语法错误,意外的“意外的“$\u服务器”

不允许使用变量

有没有一种方法是我所缺少的

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

不幸的是,这是无效的语法。正如注释中所指出的,在
\uuu construct()
中指定。最好的方法是将变量作为参数传递

class DATABASE_CONFIG {

        public $default;

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

  }

  // Usage
  $foo = new DATABASE_CONFIG($_SERVER);

不幸的是,这是无效的语法。正如注释中所指出的,在
\uuu construct()
中指定。最好的方法是将变量作为参数传递

class DATABASE_CONFIG {

        public $default;

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

  }

  // Usage
  $foo = new DATABASE_CONFIG($_SERVER);

我认为最好的方法是使用
\u 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',
            );
    }
}

我认为最好的方法是使用
\u 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',
            );
    }
}

\uuu构造()
中分配它在
\uu构造()