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]   

> Без описания
armancho7777777 Супермодератор
Отправлено: 20 Апреля, 2012 - 13:54:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


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




Всем привет!
Объясните пожалуйста конструкцию:
PHP:
скопировать код в буфер обмена
  1.  
  2. $test = new class_test();
  3. $test->method()->method2();
  4.  


И как эти методы объявлены в самом классе?
 
 Top
assd
Отправлено: 20 Апреля, 2012 - 13:57:06
Post Id


Гость


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


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




 
 Top
armancho7777777 Супермодератор
Отправлено: 20 Апреля, 2012 - 13:58:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


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




Что это?
Лучше бы мимо прошли.

(Отредактировано автором: 20 Апреля, 2012 - 13:58:59)

 
 Top
DeepVarvar Супермодератор
Отправлено: 20 Апреля, 2012 - 13:59:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Вся фишка в return $this;
PHP:
скопировать код в буфер обмена
  1. class test {
  2.  
  3.   public function method_1() {
  4.     echo 'method_1()';
  5.     return $this;
  6.   }
  7.  
  8.   public function method_2() {
  9.     echo 'method_2()';
  10.     return $this;
  11.   }
  12.  
  13. }
  14.  
  15. $a = new test;
  16. $a->method_1()->method_2();
 
 Top
armancho7777777 Супермодератор
Отправлено: 20 Апреля, 2012 - 14:00:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


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




Только и всего))

(Отредактировано автором: 20 Апреля, 2012 - 14:01:32)

 
 Top
DeepVarvar Супермодератор
Отправлено: 20 Апреля, 2012 - 14:00:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Да Закатив глазки
 
 Top
armancho7777777 Супермодератор
Отправлено: 20 Апреля, 2012 - 14:02:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


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




Спасибо DeepVarvar!))
Я думал, это метод в методе)

Т.е.:
PHP:
скопировать код в буфер обмена
  1.  
  2.   public function method_1() {
  3.  
  4.     // Что-то выполяем ...
  5.  
  6.     return $this;
  7.  
  8.   }
  9.  


?

(Отредактировано автором: 27 Ноября, 2012 - 17:33:17)

 
 Top
DeepVarvar Супермодератор
Отправлено: 20 Апреля, 2012 - 14:07:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




armancho7777777 пишет:
метод в медоде

Ну и такое бывает:
PHP:
скопировать код в буфер обмена
  1. class insider {
  2.   public function insideMethod() {
  3.     return "inside value";
  4.   }
  5. }
  6.  
  7. class test {
  8.   private $var;
  9.   public function __construct() {
  10.     $this->var = new insider;
  11.   }
  12.   public function get() {
  13.     return $this->var;
  14.   }
  15. }
  16.      
  17. $a = new test();
  18. $a->get()->insideMethod();
 
 Top
armancho7777777 Супермодератор
Отправлено: 20 Апреля, 2012 - 14:11:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


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




Ну спасибо))
 
 Top
OrmaJever Модератор
Отправлено: 20 Апреля, 2012 - 16:29:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




А ещё бывает когда метод генерирует новый обьект, например как в mysqli, когда query возвращает не $this, а создаёт новый обьект по полученым даным.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 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