{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1.
Fallen * 10.22
[автор] (7 дек 2013, 14:13) [0/0] [0] [отв] [спам] [под] +1 | -1

суть вопроса такова, как разумнее вызывать объекты из класса
с объявлением класса
$tpl = new Template;
$tpl::header(\'hello\');
или на прямую
Template::header(\'hello\');

и в чем разница, инфу искать по подобному вопросу нет времени
Добавлено 07.12.13 в 14:16:47:
на ошибочные названия не обращаем внимание

2.
Wins * 5.64
(7 дек 2013, 14:18) [0/0] [0] [отв] [спам] [под] +1 | -1

$object = new Class;
$object->function();

3.
KoT * [мошенник] 1.91
(7 дек 2013, 14:20) [0/0] [0] [отв] [спам] [под] +1 | -1

без разницы по сути, но я бы придерживался стандарта, т.е. через обьявление $tpl = new Template;

4. (7 дек 2013, 18:36) [0/0] [0] [отв] [спам] [под] +1 | -1

Разница большая.
$tpl = new Template; - создаёт экземпляр класса,то есть это значит ты получаешь объект.В таком случае при инициализации объекта ^ у тебя подключается конструктор,деструктор,геттеры,сеттеры и т.д.
Template::header(); - у тебя не создаётся экземпляр класса,не подключаются конструктор,деструктор,геттеры,сеттеры и т.д и ты обращаешься напрямую к методу.

Если тебе нужно организовать класс например с набором методов,так сказать пак функций,тогда тебе нужны статики,а если например это будет какойто контроллер или же модель тогда обращайся к объекту

5.
Fallen * 10.22
[автор] (7 дек 2013, 18:41) [0/0] [0] [отв] [спам] [под] +1 | -1

UA95, ну собственно я так и подумал, как ты написал, вообщем для статиков юзать класс::метод($данные); будет разумно, а если модель/контролер, тогда объект=класс(конструкты);

6. (7 дек 2013, 18:42) [0/0] [0] [отв] [спам] [под] +1 | -1
Fallen,

Да

7.
Fallen * 10.22
[автор] (7 дек 2013, 18:45) [0/0] [0] [отв] [спам] [под] +1 | -1

UA95, еще вопросик можно? вообщем есть объект $mysqli как можно сделать его глобальным для всех методов разных классов, просто global $mysqli; в каждом методе напрягает

8. (7 дек 2013, 18:50) [0/0] [0] [отв] [спам] [под] +1 | -1
Fallen,

За глобалки забудь,их не хорошо использовать.Я не до конца понял твой вопрос,пример скинь.
Вариантов много,в конструкторе объект запилить в свойство,либо и в каждом методе вызывать $this->_mysqli

9.
Fallen * 10.22
[автор] (7 дек 2013, 18:55) [0/0] [0] [отв] [спам] [под] +1 | -1

UA95, почти в каждом методе я работаю с бд, если mysqli не объявлен глобальным, то метод просто не знает что он работает с бд, и $mysqli->query(); воспринимает как не существующий объект
Добавлено 07.12.13 в 18:56:11:
точнее не существующий метод query

10.
abler98 * 22.68
(7 дек 2013, 18:59) [0/0] [0] [отв] [спам] [под] +1 | -1

$mysqli = new mysqli();
$data = new data();
$data->mysqli = $mysqli;
$form = new form();
$form->data = $data;
Но тогда свойства и методы классов надо делать строго public и инкапсуляция как таковая теряется.

Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 0
Скачать тему | Файлы темы | Фильтр сообщений