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
Форумы портала PHP.SU :: Версия для печати :: Объясните конструкцию...
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Объясните конструкцию...

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

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


И как эти методы объявлены в самом классе?
2. assd - 20 Апреля, 2012 - 13:57:06 - перейти к сообщению
3. armancho7777777 - 20 Апреля, 2012 - 13:58:11 - перейти к сообщению
Что это?
Лучше бы мимо прошли.
4. DeepVarvar - 20 Апреля, 2012 - 13:59:57 - перейти к сообщению
Вся фишка в 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();
5. armancho7777777 - 20 Апреля, 2012 - 14:00:40 - перейти к сообщению
Только и всего))
6. DeepVarvar - 20 Апреля, 2012 - 14:00:57 - перейти к сообщению
Да Закатив глазки
7. armancho7777777 - 20 Апреля, 2012 - 14:02:25 - перейти к сообщению
Спасибо DeepVarvar!))
Я думал, это метод в методе)

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


?
8. DeepVarvar - 20 Апреля, 2012 - 14:07:17 - перейти к сообщению
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();
9. armancho7777777 - 20 Апреля, 2012 - 14:11:36 - перейти к сообщению
Ну спасибо))
10. OrmaJever - 20 Апреля, 2012 - 16:29:29 - перейти к сообщению
А ещё бывает когда метод генерирует новый обьект, например как в mysqli, когда query возвращает не $this, а создаёт новый обьект по полученым даным.

 

Powered by ExBB FM 1.0 RC1