$hostname['application'] = '127.0.0.1';
$username['application'] = 'root';
$password['application'] = 'root';
$database['application'] = 'band';
$dbdriver['application'] = 'mysql';
class database
{
private $hostname;
private $username;
private $password;
protected $database;
private $dbdriver;
function __construct( $database )
{
}
}
$db = new database( 'application' );
仍然是与以前相同的问题,但我仍然想了解如何制作一个简单的 pdo 包装器。 我们可以通过仅知道 $x['database'] 来获取 $hostname['application'] 等吗?我的意思是我想做的是把 getting a variable from a public scope to connect database 。但我正在尝试解决不同的问题。
感谢您的关注。
最佳答案
尝试依赖注入(inject):
$hostname['application'] = '127.0.0.1';
$username['application'] = 'root';
$password['application'] = 'root';
$database['application'] = 'band';
$dbdriver['application'] = 'mysql';
class database {
private $hostname;
private $username;
private $password;
protected $database;
private $dbdriver;
function __construct( $hostname, $username, $password, $database, $driver = 'mysql' ) {
$this->hostname = $hostname;
$this->username = $username;
$this->password = $password;
$this->database = $database;
$this->driver = $driver;
}
}
$dbInstance = new database( $hostname['application'], $username['application'], $password['application'], $database['application'] );
作为一般规则,您不应该使用全局变量。如果您在函数或类方法中的某个位置需要变量,您应该显式地将它们作为参数“注入(inject)”到您的函数/方法中。
关于php - 从公共(public)范围获取变量以连接数据库第 2 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3930889/