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]   

> Без описания
Professorsha
Отправлено: 15 Октября, 2012 - 17:14:17
Post Id


Новичок


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


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




$o = new Shape();

$o->transfromToCircle()->Show() ;


Вот вопрос в следующем, если такое обращение к методу Show(), возможно, то как выглядит сам класс?
 
 Top
romanov
Отправлено: 15 Октября, 2012 - 17:43:19
Post Id


Гость


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


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




Вот так:

PHP:
скопировать код в буфер обмена
  1.  
  2. Class Shape{
  3.  
  4.   public function transfromToCircle(){
  5.      
  6.       return ....
  7.   }
  8.  
  9.  
  10.    public function Show(){
  11.      
  12.       return ....
  13.    }
  14.  
  15. }
  16.  


Я на 100% не уверен, но думаю так: при этом вызове $o->transfromToCircle()->Show() , то что вернула функция transfromToCircle() потом обрабатывается функцией Show()
 
 Top
OrmaJever Модератор
Отправлено: 15 Октября, 2012 - 17:44:36
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. class Shape
  2. {
  3.     public function transfromToCircle()
  4.     {
  5.         // ...
  6.         return $this;
  7.     }
  8.     public function Show()
  9.     {
  10.          echo 'function show';
  11.     }
  12. }


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
romanov
Отправлено: 15 Октября, 2012 - 17:47:20
Post Id


Гость


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


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




Я правильно написал, если нет , то для чего такая запись

(Отредактировано автором: 15 Октября, 2012 - 17:50:45)

 
 Top
OrmaJever Модератор
Отправлено: 15 Октября, 2012 - 17:53:03
Post Id



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


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


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




Даже для большего понимания картины написал такой класс, сут ьв том что каждый метод цепочки вносит какие-то изменения в обьект.
PHP:
скопировать код в буфер обмена
  1. class Shape
  2. {
  3.     private $string = '';
  4.  
  5.     public function transfromToCircle()
  6.     {
  7.         $this->string .= 'transfromToCircle ';
  8.         return $this;
  9.     }
  10.  
  11.     public function Show()
  12.     {
  13.         $this->string .= 'Show ';
  14.         return $this;
  15.     }
  16.  
  17.     public function out()
  18.     {
  19.         echo $this->string, '<br>';
  20.         $this->string = '';
  21.     }
  22. }
  23.  
  24. $o = new Shape();
  25.  
  26. $o->transfromToCircle();
  27. $o->out();
  28.  
  29. $o->transfromToCircle()->Show();
  30. $o->out();
  31.  
  32. $o->Show();
  33. $o->out();


Таким образом можно удобно зделать конструктор запросов, что бы он вызывался примерно так
PHP:
скопировать код в буфер обмена
  1. $query->select('login', 'pass')->from('users')->where('user_id', '10')->limit(1)


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
armancho7777777 Супермодератор
Отправлено: 15 Октября, 2012 - 17:53:53
Post Id



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


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


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




romanov
OrmaJever пишет:
 
 Top
romanov
Отправлено: 15 Октября, 2012 - 17:57:37
Post Id


Гость


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


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




Ребят кто шарит в symfony помогите плиз http://forum.php.su/topic.php?fo...1&topic=1698
 
 Top
Professorsha
Отправлено: 15 Октября, 2012 - 21:05:00
Post Id


Новичок


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


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




OrmaJever Спасибо огромнейшее за подробный ответ))) Вы мне очень помогли.
Всем принимавшим участие тоже спасибо

(Отредактировано автором: 15 Октября, 2012 - 21:05:51)

 
 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