Последнее, вероятно, лучше, но с корректировкой: передайте конструктору некоторые аргументы, а именно информацию о соединении.
Ваш первый пример полезен, только если у вас есть одно соединение с базой данных, и только если выВы довольны жестким кодированием значений соединения (не должно быть).Второй пример, если вы добавите, скажем, параметр $name
в качестве аргумента, может быть использован для подключения к нескольким базам данных:
Я новичок в ООП.Первоначально я определял переменные и присваивал им значения внутри класса и вне конструктора, но сегодня после урока ООП в Java мне сказали, что это плохой стиль, и его следует избегать.
class DatabaseConnection {
private $dbHost;
private $dbUser;
private $dbPass;
private $dbName;
function __construct($config) {
// Process the config file and dump the variables into $config
$this->dbHost = $config['host'];
$this->dbName = $config['name'];
$this->dbUser = $config['user'];
$this->dbPass = $config['pass'];
$connection = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass)
or die("Could not connect to the database:<br />" . mysql_error());
mysql_select_db($this->dbName, $connection)
or die("Database error:<br />" . mysql_error());
}
}
Такиспользуя этот стиль, теперь у вас есть более полезный класс.