Взаимодействия функций в классе
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Взаимодействия функций в классе - 2010-05-26 16:04:59.156666
|
|
|
cyberx
Сообщений: 83
Оценки: 0
Присоединился: 2009-01-04 11:47:38.966666
|
Здравствуйте! Начал изучать ооп и столкнулся с одной проблемой, вот простенький пример показывающий суть проблемы
class Functions
{
function First()
{
echo 'true';
}
function Second()
{
$this->First();
function Third()
{
$this->First();
}
}
}
$function = new Functions();
$function -> Second();
[font="verdana, arial, helvetica"][size="2"] [/size][/font]
Понятное дело покажить true, но функция First(); не работает когда я вызываю ее в третьей функции, вот если сделать так то выдает ошибку
$function = new Functions();
$function -> Third();
Мне нужно чтоб функция first была доступна в third. Вот эта функция first доступна в second, значит в нужный момент во второй функции я могу использовать $this->First(); но мне нужно чтоб и в третьей я могу ее использовать, вот как в третьей функции, которая находится внутри второй использовать первую
|
|
|
RE: Взаимодействия функций в классе - 2010-05-26 19:04:38.970000
|
|
|
mscrack
Сообщений: 118
Оценки: 0
Присоединился: 2009-03-15 15:07:33.266666
|
А зачем функцию Third объявлять внутри секонд? можно же так сделать quote:
class Functions { function First() { echo 'true'; } function Second() { $this->First(); $this->Third(); } function Third() { $this->First(); } } $function = new Functions(); $function -> Second();
|
|
|
RE: Взаимодействия функций в классе - 2010-05-27 15:29:08.350000
|
|
|
cyberx
Сообщений: 83
Оценки: 0
Присоединился: 2009-01-04 11:47:38.966666
|
Есть один файл на который посылается пост, в файле есть класс, в нем одна функция подключения к базе, и разные функции, есть главная функция например index в которой фильтруются сессии и вытаскиваются данные пользователя, потом эта функция подключает файл в зависимости от того какой пост попал, на пример $_POST['profile'] подключиться profile.php, а в том файле есть тоже функции в них как раз и не срабатывают функции подключения к базе и разные, получателя что функция в функции. Потому я просто прошу подсказать как сделать чтоб первая функция сработала в той которая вложена во вторую
|
|
|
RE: Взаимодействия функций в классе - 2010-05-27 15:40:45.190000
|
|
|
codeismy.name
Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
|
в первом посте у тебя получается, что функция function Third() не является частью класс ты просто задаёш новую функцию которая будет работать только после вызова Second() и не так $function -> Third(); а так Third(); если ты хочеш передать в другую функцию объект $this, склонируй его и сделай глобальным, а потом обращайся откуда хочеш
|
|
|
RE: Взаимодействия функций в классе - 2010-05-27 18:12:31.543333
|
|
|
cyberx
Сообщений: 83
Оценки: 0
Присоединился: 2009-01-04 11:47:38.966666
|
Вот и не получается передать в ту третью. Выходит что первая функция это подключение к базе, вторая фильтрует сессии и вытаскивает данные пользователя и в зависимости от пост запроса подключает нужный файл, там находятся функции и выходит что третья функция оказывается внутри второй.
|
|
|
RE: Взаимодействия функций в классе - 2010-05-28 11:01:48.396666
|
|
|
Agent Smith
Сообщений: 976
Оценки: 0
Присоединился: 2007-04-10 21:56:49.593333
|
Я вообще не понимаю, как у вас PHP интерпритатор не выдал сообщение об ошибке?[&:]
|
|
|
RE: Взаимодействия функций в классе - 2010-05-28 14:20:07.260000
|
|
|
codeismy.name
Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
|
и зачем такой изврат? можно проще сделать всё
|
|
|
RE: Взаимодействия функций в классе - 2010-05-28 15:45:45.510000
|
|
|
cyberx
Сообщений: 83
Оценки: 0
Присоединился: 2009-01-04 11:47:38.966666
|
Вот сижу и никак не могу придумать. Значит в классе одна функция подключение к базе, вторая в зависимости от поста подключен файл а в файле тоже функции, если это была бы одна две функции можно было бы в классе их прописать, но там целые страницы, потому и подключить файл, никак не придумал как в те функции передать значение базы и еще там пару функции
|
|
|
RE: Взаимодействия функций в классе - 2010-05-31 13:43:40.230000
|
|
|
codeismy.name
Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
|
пипец :) делай один глобальный объект и всё! потом обращайся к нему откуда угодно
|
|
|
RE: Взаимодействия функций в классе - 2010-05-31 21:11:36.806666
|
|
|
cyberx
Сообщений: 83
Оценки: 0
Присоединился: 2009-01-04 11:47:38.966666
|
Нет глобальные использовать не безопасно. Я только щас сел за ооп и не знал что существует такая вещь как extends, в этом классе protected переменной присваиваю значение базы и в подключаемых файлах вместо функции создаю класс а родительский выходит этот главный, вот и переходит все нормально
|
|
|
RE: Взаимодействия функций в классе - 2010-06-01 10:57:57.013333
|
|
|
codeismy.name
Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
|
интересно, когда это грабоальные переменные стало не безопасно использовать?
|
|
|
RE: Взаимодействия функций в классе - 2010-06-01 12:25:39.026666
|
|
|
cyberx
Сообщений: 83
Оценки: 0
Присоединился: 2009-01-04 11:47:38.966666
|
Разве не безопасно использовать protected? Они используются внутри класса и воздействовать на них из вне не возможно.
|
|
|
RE: Взаимодействия функций в классе - 2010-06-01 13:05:15.133333
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: codeismy.name интересно, когда это грабоальные переменные стало не безопасно использовать? насчёт грабоальных не знаю, но глобальное изменяемое состояние было болью в заднице ещё до твоего рождения http://c2.com/cgi/wiki?GlobalVariablesAreBad http://c2.com/cgi/wiki?GlobalVariablesConsideredHarmful впрочем, глобальных переменных в PHP на самом деле нет, потому и проблем с ними, очевидно, меньше http://stackoverflow.com/questions/1557787/are-global-variables-in-php-considered-bad-practice
|
|
|
|
|