Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Взаимодействия функций в классе

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Взаимодействия функций в классе
Имя
Сообщение << Старые топики   Новые топики >>
Взаимодействия функций в классе - 2010-05-26 16:04:59.156666   
cyberx

Сообщений: 83
Оценки: 0
Присоединился: 2009-01-04 11:47:38.966666
Здравствуйте! Начал изучать ооп и столкнулся с одной проблемой, вот простенький пример показывающий суть проблемы
class&nbsp;Functions&nbsp;&nbsp; &nbsp;{&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;function&nbsp;First()&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;'true';&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;}&nbsp;&nbsp; &nbsp;&nbsp;function&nbsp;Second()&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;$this-&gt;First();&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;function&nbsp;Third()&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;First(); &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp; $function&nbsp;=&nbsp;new&nbsp;Functions();&nbsp;&nbsp; $function&nbsp;-&gt;&nbsp;Second(); [font="verdana, arial, helvetica"][size="2"] [/size][/font] Понятное дело покажить true, но функция First(); не работает когда я вызываю ее в третьей функции, вот если сделать так то выдает ошибку
$function&nbsp;=&nbsp;new&nbsp;Functions();&nbsp; $function&nbsp;-&gt;&nbsp;Third(); Мне нужно чтоб функция first была доступна в third. Вот эта функция first доступна в second, значит в нужный момент во второй функции я могу использовать $this->First(); но мне нужно чтоб и в третьей я могу ее использовать, вот как в третьей функции, которая находится внутри второй использовать первую

Post #: 1
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-&gt;First();
$this-&gt;Third();
}

function Third() {
$this-&gt;First();
}
}


$function = new Functions();
$function -&gt; Second();


Post #: 2
RE: Взаимодействия функций в классе - 2010-05-27 15:29:08.350000   
cyberx

Сообщений: 83
Оценки: 0
Присоединился: 2009-01-04 11:47:38.966666
Есть один файл на который посылается пост, в файле есть класс, в нем одна функция подключения к базе, и разные функции, есть главная функция например index в которой фильтруются сессии и вытаскиваются данные пользователя, потом эта функция подключает файл в зависимости от того какой пост попал, на пример $_POST['profile'] подключиться profile.php, а в том файле есть тоже функции в них как раз и не срабатывают функции подключения к базе и разные, получателя что функция в функции. Потому я просто прошу подсказать как сделать чтоб первая функция сработала в той которая вложена во вторую

Post #: 3
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, склонируй его и сделай глобальным, а потом обращайся откуда хочеш
Post #: 4
RE: Взаимодействия функций в классе - 2010-05-27 18:12:31.543333   
cyberx

Сообщений: 83
Оценки: 0
Присоединился: 2009-01-04 11:47:38.966666
Вот и не получается передать в ту третью. Выходит что первая функция это подключение к базе, вторая фильтрует сессии и вытаскивает данные пользователя и в зависимости от пост запроса подключает нужный файл, там находятся функции и выходит что третья функция оказывается внутри второй. 
Post #: 5
RE: Взаимодействия функций в классе - 2010-05-28 11:01:48.396666   
Agent Smith

Сообщений: 976
Оценки: 0
Присоединился: 2007-04-10 21:56:49.593333
Я вообще не понимаю, как у вас PHP интерпритатор не выдал сообщение об ошибке?[&:]
Post #: 6
RE: Взаимодействия функций в классе - 2010-05-28 14:20:07.260000   
codeismy.name

Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
и зачем такой изврат? можно проще сделать всё
Post #: 7
RE: Взаимодействия функций в классе - 2010-05-28 15:45:45.510000   
cyberx

Сообщений: 83
Оценки: 0
Присоединился: 2009-01-04 11:47:38.966666
Вот сижу и никак не могу придумать. Значит в классе одна функция подключение к базе, вторая в зависимости от поста подключен файл а в файле тоже функции, если это была бы одна две функции можно было бы в классе их прописать, но там целые страницы, потому и подключить файл, никак не придумал как в те функции передать значение базы и еще там пару функции
Post #: 8
RE: Взаимодействия функций в классе - 2010-05-31 13:43:40.230000   
codeismy.name

Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
пипец :)
делай один глобальный объект и всё!
потом обращайся к нему откуда угодно
Post #: 9
RE: Взаимодействия функций в классе - 2010-05-31 21:11:36.806666   
cyberx

Сообщений: 83
Оценки: 0
Присоединился: 2009-01-04 11:47:38.966666
Нет глобальные использовать не безопасно. Я только щас сел за ооп и не знал что существует такая вещь как extends, в этом классе protected переменной присваиваю значение базы и в подключаемых файлах вместо функции создаю класс а родительский выходит этот главный, вот и переходит все нормально
Post #: 10
RE: Взаимодействия функций в классе - 2010-06-01 10:57:57.013333   
codeismy.name

Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
интересно, когда это грабоальные переменные стало не безопасно использовать?
Post #: 11
RE: Взаимодействия функций в классе - 2010-06-01 12:25:39.026666   
cyberx

Сообщений: 83
Оценки: 0
Присоединился: 2009-01-04 11:47:38.966666
Разве не безопасно использовать protected? Они используются внутри класса и воздействовать на них из вне не возможно. 
Post #: 12
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
Post #: 13
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Взаимодействия функций в классе







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.