lifestar 18 Опубликовано: 6 октября 2007 Рассказать Опубликовано: 6 октября 2007 Заставил себя начать изучать классы в php, хотя долго сопротивлялся и не понимал их преимущества. Честно говоря не понимаю до сих пор, но выучить стоит, подумал я и выучил =) Теперь у меня вопрос к гуру и знатокам. Имеем некий класс, внутри этого класса мы используем переменные скрипта. Как я понял есть 2 варианта, чтобы один класс видел эти переменные. 1-й вариант. Просто прописать в нужном месте global $is_logged, $member_id 2-й вариант. Отправить эту переменную в класс $my_class->is_logged = $is_logged; $my_class->member_id = $member_id; Отсюда вопрос: как поступаете вы? какой способ лучше? С точки зрения затрат памяти, да и вообще Цитата Ссылка на сообщение Поделиться на других сайтах
Bagir 3 Опубликовано: 6 октября 2007 Рассказать Опубликовано: 6 октября 2007 3-й вариант передавать методу переменные ввиде параметров, на мой взгляд самый оптимальный вариант public function func($is_logged, $member_id) { ... } Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 6 октября 2007 Рассказать Опубликовано: 6 октября 2007 (изменено) Автор кстати да, вот я дурында - не догадался об этом варианте)) А конкретные преимущества есть 3-го способа? И ещё вопрос: использовать объект одного класса в другом можно только так: global $tpl; или есть ещё способы? Изменено 6 октября 2007 пользователем lifestar Цитата Ссылка на сообщение Поделиться на других сайтах
Bagir 3 Опубликовано: 6 октября 2007 Рассказать Опубликовано: 6 октября 2007 А конкретные преимущества есть 3-го способа? global считается не безопасным, такой вид $my_class->is_logged ты создаеш новую переменную класса (т.е. кладешь в память) И ещё вопрос: использовать объект одного класса в другом можно только так: global $tpl; или есть ещё способы? смотря для чего использовать объект. в нутри класса, да и в некласса можно создать новый объект оператором NEW $var = new Class можно наследовать другой класс class Myclass extends db можно передавать объект в качестве параметра public function func($tpl) { $tpl->set('',''); } Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 6 октября 2007 Рассказать Опубликовано: 6 октября 2007 Автор Bagir, да я пишу класс комментариев и соответственно в этом классе используются методы классов $tpl и $db. Мой класс их "видел" с помощью global Сейчас попробую просто передавать объект как параметр. Спасибо! Цитата Ссылка на сообщение Поделиться на других сайтах
Bagir 3 Опубликовано: 6 октября 2007 Рассказать Опубликовано: 6 октября 2007 я уже тоже написал класс комментов (пока бетта проверяю) если надо могу скинуть, только мой класс работает только под пхп 5 Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 6 октября 2007 Рассказать Опубликовано: 6 октября 2007 Автор Bagir, скиньте пожалуйста. А то у меня в 4-х файлах (новости, анонсы, фото, видео) фактически одно и тоже! Цитата Ссылка на сообщение Поделиться на других сайтах
Bagir 3 Опубликовано: 6 октября 2007 Рассказать Опубликовано: 6 октября 2007 (изменено) вот сам класс comments.class.php, пока нет времени писать описание и пример использования, как закончу все дела напишу. Изменено 6 октября 2007 пользователем Bagir Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.