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