在OOP中,经验很少,我草绘了一个类,这样它的构造函数就会立即创建一个数据库连接对象,但是Warning: Missing argument 1 for DB::__construct()所有5个变量都出错了。我知道他说参数丢失(没有类型),但我不明白为什么。他们在上面!
class DB
{
protected $host = 'localhost';
protected $db = 'name';
protected $charset = 'utf8';
protected $user = 'user';
protected $pass = 'passw';
public function __construct($host, $db, $charset, $user, $pass) {
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
try {
$this->DBconnect = $pdo = new PDO($dsn, $user, $pass, $opt);
}
catch( PDOException $Exception ) {
if(!empty($Exception->getCode())){
die('Ошибка');
}
}
}
}
// Создаю экземпляр
$a = new DB();
这是构造函数定义,它的签名:
这是代码中不同位置的用法:
变量
$host, $db, $charset, $user, $pass将采用一个或另一个值,具体取决于在每种特定情况下调用构造函数的值。像在这里一样在类定义中存储道具..
..不好的语气。将它们放在单独的配置文件中会很好。更好的是,将它放在 Web 服务器所在的目录之外。
或立即在构造函数调用中,指定默认值
通常,具有数据库连接设置的文件是单独存储的,并被称为(例如)
db.php。然后可以通过不带参数调用它来显着缩短类的构造函数。例子:班级说明: