Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вызов метода объекта из метода другого объекта

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Crate
Отправлено: 03 Февраля, 2012 - 08:06:51
Post Id



Посетитель


Покинул форум
Сообщений всего: 312
Дата рег-ции: Янв. 2012  


Помог: 4 раз(а)




Выделено в отдельную тему из темы "Шаблонизатор"
Здравствуйте еще раз!
У меня проблема, но немного по другой части. Нужно обратиться по объекту из одного класса к функции другого. Пример:
PHP:
скопировать код в буфер обмена
  1. class Alpha {
  2.         function method1 ($text) {
  3.                 $result = trim ($text);
  4.                 return $result;
  5.         }
  6. }
  7.        
  8. $alpha = new Alpha ();
  9.        
  10. class Beta {
  11.         function method2 ($text) {
  12.                 $result = $alpha->method1($text);
  13.                 return $result;
  14.         }
  15. }

Но пишет что method1 является нон-обджект.


Отредактировано модератором: Саныч, 03 Февраля, 2012 - 11:14:04
А тему все же стоит создавать отдельную, а не лепить все в кучу
 
 Top
sKaa
Отправлено: 03 Февраля, 2012 - 08:28:38
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


Помог: 25 раз(а)

[+]


Выделено в отдельную тему из темы "Шаблонизатор"
Crate, а просто новую тему нельзя было создать в разделе ООП?
Как ты собрался обращаться к методу объекта если он у тебя не инициализирован вообще.

PHP:
скопировать код в буфер обмена
  1. class Alpha {
  2.             function method1 ($text) {
  3.                     $result = trim ($text);
  4.                     return $result;
  5.             }
  6.     }
  7.            
  8.    
  9.            
  10.     class Beta {
  11.             function method2 ($text) {
  12.                     $alpha = new Alpha ();
  13.                     $result = $alpha->method1($text);
  14.                     return $result;
  15.             }
  16.     }
 
 Top
Crate
Отправлено: 03 Февраля, 2012 - 08:37:21
Post Id



Посетитель


Покинул форум
Сообщений всего: 312
Дата рег-ции: Янв. 2012  


Помог: 4 раз(а)




Выделено в отдельную тему из темы "Шаблонизатор"
sKaa пишет:
а просто новую тему нельзя было создать в разделе ООП?
Извините, каюсь, не создал ибо лень было.

sKaa
незнал что нужно каждый раз создавать объект класс.
 
 Top
sKaa
Отправлено: 03 Февраля, 2012 - 08:49:48
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


Помог: 25 раз(а)

[+]


Выделено в отдельную тему из темы "Шаблонизатор"
для того чтобы не создавать каждый раз объект класса существует паттерн Singleton
PHP:
скопировать код в буфер обмена
  1. class Singleton {
  2.  protected function __clone()   { }
  3.  protected function __wakeup()  { }
  4.  protected function __construct(){ }
  5.  
  6.  static private $Instance = NULL;
  7.  
  8.  static public function getInstance() {
  9.    if(self::$Instance==NULL){
  10.      $class = __CLASS__;
  11.      self::$Instance = new $class;
  12.      }
  13.    return self::$Instance;
  14.  }
  15.  
  16. }
  17.        
  18.                
  19.         class Beta {
  20.                 function method2 ($text) {
  21.                         $alpha = Singleton::getInstance();
  22.                         $result = $alpha->method1($text);
  23.                         return $result;
  24.                 }
  25.         }

Таким образом гарантированно у вас будет создана только один экземпляр класса
 
 Top
webog
Отправлено: 25 Февраля, 2016 - 19:53:28
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


Куда писать class Singleton ? Я так понимаю это другой файл?

Тогда и class Beta будет другой файл. Замкнутый круг...


-----
Hello!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB