zapretnyii_plod Опубликовано 21 Февраля 2009 Жалоба Поделиться Опубликовано 21 Февраля 2009 Есть некий класс с неким набором функций. class A { function X ( ) function Y ( ) } Фишка в том, что эти же функции используются и в других классах. Поэтому логично вынести их в отдельный файл, допустим f.php:function X ( ) function Y ( ) }, а внутри класса заинклудить этот f.php. Встаёт вопрос, как эти функции вызвать в нужный момент внутри класса? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 21 Февраля 2009 Жалоба Поделиться Опубликовано 21 Февраля 2009 Обычно для этого используют наследование. Иначе и незачем было в начале добавлять эти функции именно как методы классов. Вызывать как обычные функцииX(); Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
zapretnyii_plod Опубликовано 22 Февраля 2009 Автор Жалоба Поделиться Опубликовано 22 Февраля 2009 (изменено) Если просто вызвать - напишет ошибку Call to undefined function X() Изменено 22 Февраля 2009 пользователем zapretnyii_plod Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 22 Февраля 2009 Жалоба Поделиться Опубликовано 22 Февраля 2009 потому что надо правильно задавать вопросыпоказать весь код, а не Х, У, Q как вызывается отдельный файл, как в нем содержатся эти функции, просто, в классе? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
zapretnyii_plod Опубликовано 22 Февраля 2009 Автор Жалоба Поделиться Опубликовано 22 Февраля 2009 Ладно, конкретно. Есть отдельный файл вот с такой функцией fbank.php<?php class bank_func { function is_bank() { $member_id = $this->ipsclass->member['id']; //Проверяем есть ли банковская лицензия $this->ipsclass->DB->build_and_exec_query(array('select'=>'i_id','from'=>'market_inventory','where'=>"member_id='$member_id' and item='114'")); if ($this->ipsclass->DB->get_num_rows() == 0) { return false; } else { return true; } } } Далее есть другой класс<?php class item_check extends template_item { ... function public_use_form { require_once( ROOT_PATH."sources/fbank.php" ); //Тут вызывается этот самый файл и надо каким-то образом следующей строкой вызвать функцию is_bank() } } Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 22 Февраля 2009 Жалоба Поделиться Опубликовано 22 Февраля 2009 require_once( ROOT_PATH."sources/fbank.php" ); $fbank_class = new bank_func; $fbank_class->ipsclass =& $this->ipsclass; $result=$fbank_class->is_bank(); Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
zapretnyii_plod Опубликовано 22 Февраля 2009 Автор Жалоба Поделиться Опубликовано 22 Февраля 2009 Спасибо большое, Arhar. То, что нужно. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 22 Февраля 2009 Жалоба Поделиться Опубликовано 22 Февраля 2009 Если эти функции выносятся в bank_func как общие и не относящиеся к объектам, то логично делать их статическими, если нет причин против этого... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
zapretnyii_plod Опубликовано 23 Февраля 2009 Автор Жалоба Поделиться Опубликовано 23 Февраля 2009 Не очень понятно, что значит сделать эти функции статическими. Поясни. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.