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

时间:2018-08-03 21:34:19

标签: php cakephp

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

  

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

不允许使用变量。

有什么办法可以使我丢失吗?

builder.setCloseButtonIcon(bitmapFromDrawable(this, R.drawable. ic_arrow_back_white_24dp));

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

不幸的是,这是无效的语法。如注释中所指出的,在__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);