[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Назначить значения переменным конструктора класса
McLotos
Добрый день!
вожусь с одной ситуацией, в общем идея вот в чем, есть класс
class dBase {
public $server;
public $host;
public $port;
public $user;
public $pass;
public $base;

private static $db = null;
private $mysqli;
private $sym_query = "{?}";

public function __construct() {
$this->mysqli = new mysqli($this->host.':'.$this->port,$this->user,$this->pass,$this->base);
$this->mysqli->query("SET lc_time_names = 'ru_RU'");
$this->mysqli->query("SET NAMES 'utf8'");
}
...

Первоначально переменные класса пустые (это видно в коде)
Вызываю класс и передаю туда значения для этих переменных
$db = new dBase();
$db -> server = SQL_SERVER;
$db -> host = SQL_HOST;
$db -> port = SQL_PORT;
$db -> user = SQL_USER;
$db -> pass = SQL_PASS;
$db -> base = SQL_BASE;

Вопрос. Почему переменные внутри класса остаются пустыми?
Логично предположить что конструктор класса срабатывает до того как я назначаю им значения. Отсюда возникает другой вопрос. Как это изменить?
Создать ещё один метод который будет это делать вместо конструктора?

P.s. для тех у кого возник вопрос "Почему бы не вызвать константы сразу внутри класса". Отвечаю. Не хочу чтобы класс зависел от имен переменных которые не внутри класса. т.е. если имя константы изменится я хочу чтобы класс остался работоспособным, т.е. чтобы каждый раз при использовании класса в другом проекте мне не нужно было его переделывать.

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.