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

cyberx

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

Здравствуйте! Начал изучать ооп и столкнулся с одной проблемой, вот простенький пример показывающий суть проблемы
PHP:
class Functions  
 {   

  function First()   
   {
    echo 'true';   
   }  

  function Second()   
  {    
   $this->First(); 
 
   function Third()    
    {
     $this->First();
    }   

   }     



}    


$function = new Functions();  
$function -> Second();
Понятное дело покажить true, но функция First(); не работает когда я вызываю ее в третьей функции, вот если сделать так то выдает ошибку

PHP:
$function = new Functions(); 
$function -> Third();
Как вызвать первую функцию, если функция вложена во вторую?
 

WebAngel

Новичок
функция в методе не является методом и ей не доступно $this, она - самая обычная функция
 

cyberx

Новичок
И как использовать функцию first в функции third? Не знаю как записать. Пытался без $this но все равно выдает ошибку
 

AmdY

Пью пиво
Команда форума
а писать нормально нельзя?
PHP:
class Functions {    
    function First() { 
        echo 'true';    
    }   
    function Second() {     
        $this->First();  
    }  
    function Third() { 
        $this->First(); 
    }  
}
 

A1x

Новичок
cyberx
что такое методы и чем они отличаются от функций?
 

cyberx

Новичок
Да но в некоторых моментах мне нужна такая структура. Вообще возможна такая структура как я написал? Возможно в третьей функции вызвать первую, если она лежит во второй?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
cyberx
не надо так делать и точка. И тем более не надо нас убеждать, что оно необходимо. Я не вижу ни одного аргумента за этот изврат.
 

craz

Нестандартное звание
было уже обсуждение ищите по сайту, там тоже нас долго уверяли что без такой конструкции и дня не проживут
 

cyberx

Новичок
Я же не спорю что это супер конструкция, просто мне такая понадобилась и не знаю как вызвать первую функцию в третьей.
 

Духовность™

Продвинутый новичок
просто мне такая понадобилась и не знаю как вызвать первую функцию в третьей.
либо прислушайся к советам, либо не изучай ООП - с таким дурным упорством все равно ничего не получится.

"Спрятанная" функция Third говорит о том, что ты хочешь её спрятать. Почитай про модификаторы доступа.
 

cyberx

Новичок
Да нет не ничего прятать я не хочу, я знаю про protected. Есть один файл на который посылается пост, в файле есть класс, в нем одна функция подключения к базе, и разные функции, есть главная функция например index в которой фильтруются сессии и вытаскиваются данные пользователя, потом эта функция подключает файл в зависимости от того какой пост попал, на пример $_POST['profile'] подключиться profile.php, а в том файле есть тоже функции в них как раз и не срабатывают функции подключения к базе и разные, получателя что функция в функции. Потому я просто прошу подсказать как сделать чтоб первая функция сработала в той которая вложена во вторую
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
cyberx
тебе столько раз сказали, что так делать НЕ надо, но ты упорно хочешь сделать по-своему. По-моему стоит задуматься о том, чтобы поменять архитектуру немного
 
Сверху