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

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


lifestar

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

Заставил себя начать изучать классы в 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; или есть ещё способы?

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

А конкретные преимущества есть 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, пока нет времени писать описание и пример использования, как закончу все дела напишу.

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

Архивировано

Эта тема находится в архиве и закрыта для публикации сообщений.

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