Перейти к публикации

Классы в DLE и вообще


Рекомендованные сообщения

Заставил себя начать изучать классы в php, хотя долго сопротивлялся и не понимал их преимущества.

Честно говоря не понимаю до сих пор, но выучить стоит, подумал я и выучил =)

Теперь у меня вопрос к гуру и знатокам.

Имеем некий класс, внутри этого класса мы используем переменные скрипта.

Как я понял есть 2 варианта, чтобы один класс видел эти переменные.

1-й вариант.

Просто прописать в нужном месте

global $is_logged, $member_id
2-й вариант. Отправить эту переменную в класс
	$my_class->is_logged = $is_logged;

	$my_class->member_id = $member_id;

Отсюда вопрос: как поступаете вы? какой способ лучше? С точки зрения затрат памяти, да и вообще :)

Ссылка на сообщение
Поделиться на других сайтах

3-й вариант

передавать методу переменные ввиде параметров, на мой взгляд самый оптимальный вариант

public function func($is_logged, $member_id) {

	...

}

Ссылка на сообщение
Поделиться на других сайтах

кстати да, вот я дурында - не догадался об этом варианте))

А конкретные преимущества есть 3-го способа?

И ещё вопрос: использовать объект одного класса в другом можно только так: global $tpl; или есть ещё способы?

Изменено пользователем lifestar
Ссылка на сообщение
Поделиться на других сайтах

А конкретные преимущества есть 3-го способа?

global считается не безопасным, такой вид $my_class->is_logged ты создаеш новую переменную класса (т.е. кладешь в память)

И ещё вопрос: использовать объект одного класса в другом можно только так: global $tpl; или есть ещё способы?

смотря для чего использовать объект. в нутри класса, да и в некласса можно создать новый объект оператором NEW

$var = new Class
можно наследовать другой класс
class Myclass extends db
можно передавать объект в качестве параметра
public function func($tpl) {

	$tpl->set('','');

}

Ссылка на сообщение
Поделиться на других сайтах

Bagir, да я пишу класс комментариев и соответственно в этом классе используются методы классов $tpl и $db.

Мой класс их "видел" с помощью global

Сейчас попробую просто передавать объект как параметр.

Спасибо! :)

Ссылка на сообщение
Поделиться на других сайтах

я уже тоже написал класс комментов (пока бетта проверяю) если надо могу скинуть, только мой класс работает только под пхп 5

Ссылка на сообщение
Поделиться на других сайтах

Bagir, скиньте пожалуйста. А то у меня в 4-х файлах (новости, анонсы, фото, видео) фактически одно и тоже!

Ссылка на сообщение
Поделиться на других сайтах

вот сам класс comments.class.php, пока нет времени писать описание и пример использования, как закончу все дела напишу.

Изменено пользователем Bagir
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...