我正在尝试使用环境变量来设置我们的数据库机密。我得到了:
分析错误:语法错误,意外的“意外的'$_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',
);
}
发布于 2018-08-04 05:49:29
我认为最好的方法是使用__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',
);
}
}
发布于 2018-08-04 05:48:37
不幸的是,这是无效的语法。正如注释中所指出的,在__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);
https://stackoverflow.com/questions/51680338
复制相似问题